当ViewController具有UITabBar时,为什么viewWillTransition大小与原始UIView大小不同?

时间:2018-10-07 03:01:47

标签: ios swift uiview uiviewcontroller uitabbarcontroller

我有一个自定义子集svg,其栏高度大于默认的UITabBarController高度(默认高度为49)。

在后代UITabBar中,我像这样检查主UIViewController的大小:

UIView

返回的值是我期望的值,而在iPhone 6 Plus上不考虑print(view.frame)(即Safe Area,即纵向)的全尺寸视图。

(414.0, 736.0)中的界面方向发生变化时,我需要更新几个子视图框架。我想对框架使用与viewWillTransition中相同的代码,该代码应该仅能够使用视图的新viewDidLoad来调整子视图框架。但是,由于我不知道的原因,传递给CGSize的{​​{1}}的尺寸比原来的视图小。

例如,如果纵向的原始尺寸为CGSize,则传递给viewWillTransition的尺寸为(414.0, 736.0)

我注意到这两个维度的差异与默认的UITabBar高度(49)相同。我不知道这是否是巧合,但我倾向于认为这是相关的。

切换回原始方向时,传递到viewWillTransition的{​​{1}}仍然小于原始方向(返回(736.0, 365.0)而不是完整的CGSize

为什么viewWillTransition收到的尺寸小于原始视图的尺寸?我可以通过在接收到的大小上手动添加49来解决此问题,但这对我来说似乎不是最佳解决方案。

0 个答案:

没有答案