ios – UIViews结束在标签栏下面

在我的应用程序中,我使用autolayout从bottomLayoutGuide对齐标签的标准数量.当应用程序首次启动时,所有内容都按照我想要的方式进行布局,但是当我切换选项卡并返回标签时,标签栏控制器已经消失.

如果我旋转设备,景观视图正确显示,当我旋转到纵向时,视图恢复正常.我似乎无法弄明白导致这种行为的原因.谢谢你的帮助!

解决方法

这是由于iOS7中的一个错误,底部布局指南错误地设置为高度0而不是标签栏的高度.旋转设备时,底部布局指南设置正确.

目前,您最好的选择是禁用底部扩展布局:

- (UIRectEdge)edgesForExtendedLayout
{
    return [super edgesForExtendedLayout] ^ UIRectEdgeBottom;
}

对于从标签栏控制器显示的每个视图控制器执行此操作.请记住将标签栏视图控制器的背景颜色设置为适合您的应用程序.

确保在https://bugreport.apple.com打开一个错误报告

要详细说明一下,在切换视图控制器时,看起来viewDidLayoutSubviews被称为两次.第一次,一切设置正确,但第二次底部布局指南高度为0.您可以从堆栈跟踪中看到第一个来自标签栏布局,而第二个调用来自预定的CALayer布局,这是不正确的.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...