Ang*_*qui 7 uiviewcontroller uikit ios autolayout
我想创建一个自定义容器视图控制器,其行为与半透明tabbar非常相似.在我的故事板中,我有这样的事情:
![带有容器视图的故事板[1]](https://i.stack.imgur.com/99XbK.png)
容器视图中的内容在tabbar按钮视图下展开,以显示半透明效果.但是,因为这不是标准的tabbar,UIKit所以没有bottomLayoutGuide在子控制器中设置,默认情况下0.
结果是,当存在滚动视图时,内部子控制器没有在内容上正确设置插入,因此内容的最后几个像素被tababar视图覆盖.
我知道我可以制作一个自定义解决方案,我contentInset在子视图控制器中手动更改,但这将是非常麻烦,因为有多个孩子.此外,这个自定义tabbar将动画输入/输出,并且可能具有不同的大小,因此这种方法非常复杂,并且与子控制器的关系非常紧密地与自定义tabbar实现相关联.从子项到tabbar布局的许多额外代码和依赖项!
如果我使用标准标签栏,内容将正确显示,因为系统使用bottomLayoutGuide向内部滚动框添加插入内容.
我想以某种方式执行与我的自定义标签栏同样的动作,所以没有必要改变任何东西在我的孩子控制器代码(让他们更少地依赖于标签栏的内部),所以我可以引用布局边距通常来自InterfaceBuilder,无论哪个是容器视图.
作为额外的好处,这种方法可以让我更改bottomLayoutGuide动画输入/输出或更改标签栏大小,并只需要再次询问子视图.
我bottomLayoutGuide在tabBar和子控制器上尝试了不同的操作.我尝试过的一些例子是:
bottomLayoutGuide.heightAnchor.constraintEqualToConstant(40)
bottomLayoutGuide.topAnchor.constraintEqualToAnchor(tabBarView.topAnchor)
而且我也试着打电话view.setNeedsUpdateConstraints()以防万一,但不管我做什么bottomLayoutGuide.length似乎总是回来0.0.
我也看到现在的观点有一个,layoutMarginsGuide但似乎并不是一回事.
bottomLayoutGuide总是0?我在这里错过了什么吗?谢谢!
| 归档时间: | 
 | 
| 查看次数: | 217 次 | 
| 最近记录: |