在我的应用程序中,我使用autolayout从bottomLayoutGuide对齐标签的标准数量.当应用程序首次启动时,所有内容都按照我想要的方式进行布局,但是当我切换选项卡并返回标签时,标签栏控制器已经消失.
如果我旋转设备,景观视图正确显示,当我旋转到纵向时,视图恢复正常.我似乎无法弄明白导致这种行为的原因.谢谢你的帮助!
解决方法
这是由于iOS7中的一个错误,底部布局指南错误地设置为高度0而不是标签栏的高度.旋转设备时,底部布局指南设置正确.
目前,您最好的选择是禁用底部扩展布局:
- (UIRectEdge)edgesForExtendedLayout { return [super edgesForExtendedLayout] ^ UIRectEdgeBottom; }
对于从标签栏控制器显示的每个视图控制器执行此操作.请记住将标签栏视图控制器的背景颜色设置为适合您的应用程序.
确保在https://bugreport.apple.com打开一个错误报告
要详细说明一下,在切换视图控制器时,看起来viewDidLayoutSubviews被称为两次.第一次,一切设置正确,但第二次底部布局指南高度为0.您可以从堆栈跟踪中看到第一个来自标签栏布局,而第二个调用来自预定的CALayer布局,这是不正确的.
原文地址:https://www.jb51.cc/iOS/336368.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。