【问题标题】:iOS - UITableView height autoresize not working when using insertSubviewiOS - 使用 insertSubview 时 UITableView 高度自动调整大小不起作用
【发布时间】:2013-05-28 16:36:43
【问题描述】:

我正在使用 Storyboards 开发带有 iOS 5.1 的 iPhone 应用程序。我有一个 UIViewController,底部有一个 UITabBar 组件。我正在使用 UITabBar 委托事件 didSelectItem 加载不同的视图控制器,以使用 insertSubview 用于每个标签页,例如:

[[self view] insertSubview:[salesQuotesVC view] belowSubview:mainTabBar];

我要插入到宿主视图中的视图控制器包含一个 UITableView 控件,该控件启用了所有自动调整大小的锚点/约束,因此它应该延伸到可用空间。它还具有模拟指标 Top Bar=Navigation Bar 和 Bottom Bar=Tab Bar。一切正常,除了在 3.5" 和 4" (iPhone 5) 屏幕之间切换时调整 UITableView 的大小。如果我将 Interface Builder 设置为 3.5" 外形尺寸,那么它在 3.5" 设备上运行良好,但在 4" 设备上表格太短。同样,如果我将 IB 外形尺寸设置为 4",它在 4" 设备上运行良好设备,但表格太长,在 3.5 英寸设备上的标签栏下方运行。

我以前从未遇到过在 3.5"/4" 设备之间自动调整大小的问题,但到目前为止,我只使用 UITabViewControllers 来处理标签页。这是我第一次使用 UITabBar 和 UIViewController 编写标签切换自己的代码(我这样做是为了可重用性)。我猜调整大小问题与insertSubview 有关?

【问题讨论】:

    标签: ios objective-c uitableview iphone-5 autoresizingmask


    【解决方案1】:

    您之前没有遇到过问题,因为视图控制器已经为您完成了。如果您将视图添加为子视图,那么您需要自己做。只需在将表视图添加为子视图之前设置它的框架,然后您的自动调整大小规则将处理任何后续更改。

    【讨论】:

    • 您好,感谢您的回复。所以我需要检查正在使用的屏幕大小,然后相应地设置表格视图的框架?
    • 设置表视图框架与您要添加到的视图相关。所以视图宽度和高度减去标签栏(我猜也是子视图)高度。
    • 这太棒了,只需要为导航栏额外去掉 44 个。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 2016-05-29
    • 1970-01-01
    相关资源
    最近更新 更多