Autolayout添加额外的填充

时间:2014-02-20 19:37:09

标签: ios objective-c uiview uikit autolayout

我在故事板中有一个UITableViewController,我将其作为子视图添加到UIViewController中的单独UIView,我的最终目标是让UITableView在状态栏上刷新,以便滚动到状态栏下方(不是通过它与冲突)。

我已经将单独的UIView配置为在垂直和水平方向上都有0的约束但是如图所示我相信autolayout然后添加我在布局中包含的20px y偏移。如果我删除20px y偏移(并将UIView的大小调整为整个布局),我最终会发生冲突。

20 offset

no offset

1 个答案:

答案 0 :(得分:0)

我建议您按如下方式设置视图控制器。在IB中创建一个UIViewController并添加一个简单的UITableView作为其主视图的子视图。我几乎从不使用UITableViewController,因为它几乎没有附加值但是它限制了你在表视图中添加子视图。现在,将表视图的原点定位到(0,20),并将表视图的顶部布局约束设置为顶部布局指南而不是超级视图。也许您应该打开接近IB中约束常量值的下拉菜单: Align to top layout guide 这样,您的表格视图就会从状态栏开始。

但请注意,iOS 7设计指南建议您实际上扩展顶部栏(导航栏和状态栏)下的内容。您应该创建一个20点高的半透明背景png,将其放置在状态栏下,然后让表格视图在状态栏下滚动。在这种情况下,您也不应忘记检查视图控制器的“调整滚动视图插入”选项。