我在视图控制器中的动画依赖于self.view.center
的固定值。但是,根据我的导航流程,我的self.view.center具有不同的值(iPhone X,iOS 11的差异为41.5f)。
有人可以解释为什么会这样吗?与扩展布局有关吗?更改状态栏/标签栏/导航栏?
我可以通过另一种方法获得确切的值吗?
我已经尝试过:
CGRectGetMidY(self.view.bounds); //-> same problem applies here
答案 0 :(得分:1)
UIView
的{{1}}属性是视图center
的中心。 frame
的坐标系is that of the superview。因此,实际上,frame
的值取决于视图所处的上下文。
对于视图在其 own 坐标系中的中心,您需要查看其center
矩形。 bounds
和CGRectGetMidX()
将为您提供中心点所需的值。
答案 1 :(得分:0)
如果要在viewDidLoad()方法中访问中心或边界。在viewDidAppear()中尝试一下,它将为您提供视图控制器视图的正确中心位置