【发布时间】:2018-09-17 16:45:54
【问题描述】:
我在解决自动布局问题时遇到了挫折。希望对这个问题有一些新的看法会更好地找到解决方案......
我在故事板文件中有一个 UITabBarController,在第一个视图控制器中有一个 MKMapView 和一个按钮:
按钮被限制在视图控制器的视图安全区域的底部。 MKMapView 受限于其父视图。到目前为止,这工作正常。
当我旋转手机时,问题就来了。在UITabBarController的viewWillTransitionToSize:withTransitionCoordinator:方法中,我调用[self.tabBar setHidden:(size.height < kMinViewSize)]是为了在视图高度太小时隐藏标签栏。
然后当我再次旋转回纵向模式时,标签栏会按原样取消隐藏,但布局再次搞砸了:
最后,如果我选择另一个选项卡,然后返回到地图选项卡,按钮将移回正确的位置。
我是否遗漏了一些明显的东西?提前感谢您的帮助!
【问题讨论】:
-
你确定你的约束是按照你说的那样设置的吗?在具有相同设置的快速演示项目中,一切都按预期工作。
-
谢谢安德烈。奇怪的。我一定在情节提要中搞砸了其他东西,因为约束绝对是正确的。我将尝试制作一个演示项目并比较两者。
-
尝试在 viewDidLayoutSubviews() 中调用 setNeedsLayout() 和 layoutIfNeeded()
-
之前都试过了。而刚才我发现了问题!我觉得自己像个傻瓜……
标签: ios autolayout uitabbarcontroller safearealayoutguide