iPhone中的UITabbar高度和显示在从横向旋转到纵向时不会动态变化,反之亦然iOS11

ErA*_*ube 6 iphone uitabbar autolayout ios11

我在不使用AutoLayout的情况下添加了UITabBar,它在iOS 10.3.1之前运行良好.iOS 11中似乎有一个新功能,即UITabBar的纵向高度为49,横向模式为32(Photo App就是一个很好的例子).现在当我运行iOS11中构建的应用程序时,如果我以横向模式启动我的应用程序,UITabBar的高度从32的高度开始,但当它旋转到纵向模式时,它保持在32并且图标变大并且边缘超出TabBar框架.当我以纵向模式启动应用程序时,TabBar的高度以49的高度开始,并在旋转到纵向模式时保持不变(这是可以接受的).

我尝试使用AutoLayout和约束来解决问题,但是我无法解决它.如果有人遇到这个问题,那将是一个很大的帮助.

这个问题似乎只发生在iPhone非加装置中.

更新:使用下面的答案修正高度,但在横向模式下,UITabBar项目的文本和图标不是水平对齐,而是在iPhone X中垂直对齐.

我面临的问题类似于这里的问题

Bre*_*don 5

我遇到了这个问题并通过调用invalidateIntrinsicContentSize()标签栏,然后调用它updateConstraintsIfNeeded()的超级视图来解决它。在我的例子中,我在一个动画块中调用了两者,但有可能将它们中的一个或两个移出它。