首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Transform正确旋转UITableView,而无需使用接口构建器

使用Transform正确旋转UITableView,而无需使用接口构建器
EN

Stack Overflow用户
提问于 2009-05-17 19:02:55
回答 4查看 10.8K关注 0票数 4

UiTableView在横向模式下不提供水平滚动。

我的UiTableView不是全屏的(所以我不能在旋转我的内容时使用它的水平模式,这是图片)

我发现要使用变换来旋转我的UiTableView ..我必须在Interface Builder中将其放置在某个奇怪的位置,以便旋转时,它看起来是正确的.....

有没有人做到这一点而不去摆弄界面生成器呢?相同的代码?

EN

回答 4

Stack Overflow用户

发布于 2012-11-20 21:26:12

好吧,问题是由于表格视图的宽度是灵活的,在旋转之后,单元格的宽度(即实际高度)也增加了。我通过将UITableView子类化并覆盖layoutSubviews方法克服了这个问题,因此它现在看起来像这样:

代码语言:javascript
复制
- (void)layoutSubviews {

    [super layoutSubviews];

    for (UIView* child in [self subviews]) {

        CGRect frame1 = child.frame;
        if ([child isKindOfClass:[UITableViewCell class]]) {
            frame1.size.width = 120;
            child.frame = frame1;        
        } 
    }

}
票数 4
EN

Stack Overflow用户

发布于 2009-05-17 19:10:06

请参阅苹果网站上Windows and Views概念指南中的自动调整大小行为部分。这就解释了如何在不使用Interface Builder的情况下实现从纵向到横向的自动旋转,也不必手动实现复杂的转换。

至于旋转自定义内容和禁用滚动,请参阅UIViewController中的shouldAutorotateToInterfaceOrientation:interfaceOrientationwillRotateToInterfaceOrientation:duration:didRotateFromInterfaceOrientation:。你可以实现这些方法来拦截旋转事件,检查你要移动到哪个方向,并在那里处理你的自定义绘图和属性设置。

编辑

作为对你的评论的回应,我从苹果的Table View Programming Guide中发现了这一点:

UITableView继承自UIScrollView,它定义了内容大于窗口大小的视图的滚动行为。UITableView重新定义了滚动行为,只允许垂直滚动。

也许苹果认为表格视图的水平滚动与他们的人性化界面准则相违背。我想知道,如果你子类化了UITableView,你是否可以重新定义滚动行为,但这可能会有大量的试验和错误工作。如果你真的能够做到这一点,我相信这里的许多人都会对你是如何做到的感兴趣的。我四处寻找了一段时间,试图找到别人的解决方案,但我什么也找不到。

再说一次,如果你这样做了,苹果可能不会允许你的应用程序进入应用程序商店,假设它真的破坏了HIG。

票数 3
EN

Stack Overflow用户

发布于 2010-09-01 19:35:52

您可以通过执行以下操作来实现您正在寻找的目标:

通过代码或通过IB (请勿使用UITableViewController)

  • Apply对表进行90度逆时针变换)创建
  1. 并将其附加到UITableView。
  2. 在表视图中: UIViewController

In:

  1. ,在返回单元格之前对单元格应用90度顺时针变换。

布姆!现在,您得到了一个带有垂直单元格的水平滚动表格。您可能必须更正单元格和表格的宽度和高度,以使所有内容看起来都正确,但我想这可能会对您有所帮助。

另一个提示:您可以使用表格的图层来控制旋转的中心点。anchorPoint属性(它是一个CGPoint)。如果将其设置在视图边界中心以外的其他位置,则旋转效果(和任何其他效果)将使用该点作为参考。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/875240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档