iPhone中的UITabbar高度在从横向到纵向旋转时不会动态变化iOS11
问题描述:
我在不使用AutoLayout的情况下添加了UITabBar,它在iOS 10.3.1之前工作正常。在iOS 11中似乎有一个新功能,那就是UITabBar的高度是纵向49和横向模式32(Photo App是一个很好的例子)。现在,当我运行我的iOS11应用程序时,如果我在横向模式下启动我的应用程序,UITabBar的高度以32的高度开始,但当它旋转到纵向模式时,它保持在32,图标变得更大, TabBar框架。当我以纵向模式启动应用程序时,TabBar的高度从49的高度开始,并在旋转到纵向模式时保持不变(这是可接受的)。iPhone中的UITabbar高度在从横向到纵向旋转时不会动态变化iOS11
我试图解决这个问题,使用AutoLayout和约束,但是我无法解决它。如果有人有这个问题,这将是一个很大的帮助。
更新:此问题似乎只发生在iPhone非加装置中。
答
我有这个问题,并通过在标签栏上调用invalidateIntrinsicContentSize()
,然后updateConstraintsIfNeeded()
超级查看解决它。就我而言,我在一个动画块内部都调用了它,但也可以将它们中的一个或两个都移出。
这节省了我几个小时,谢谢!我试图在'traitCollectionDidChange'中的动画块之外做到这一点,但问题仍然会发生从横向到纵向。最终,我把它放在'viewWillTransitionToSize:withTransitionCoordinator:'内部的动画块中,'animateAlongsideTransition:completion:'。 –