UIViewController的view.center值不一定总是相同

时间:2019-01-11 16:59:17

标签: ios cocoa-touch uiview

我在视图控制器中的动画依赖于self.view.center的固定值。但是,根据我的导航流程,我的self.view.center具有不同的值(iPhone X,iOS 11的差异为41.5f)。

有人可以解释为什么会这样吗?与扩展布局有关吗?更改状态栏/标签栏/导航栏?

我可以通过另一种方法获得确切的值吗?

我已经尝试过:

CGRectGetMidY(self.view.bounds); //-> same problem applies here

2 个答案:

答案 0 :(得分:1)

UIView的{​​{1}}属性是视图center的中心。 frame的坐标系is that of the superview。因此,实际上,frame的值取决于视图所处的上下文。

对于视图在其 own 坐标系中的中心,您需要查看其center矩形。 boundsCGRectGetMidX()将为您提供中心点所需的值。

答案 1 :(得分:0)

如果要在viewDidLoad()方法中访问中心或边界。在viewDidAppear()中尝试一下,它将为您提供视图控制器视图的正确中心位置