在iOS8改变方向后获取UIView的更新中心位置

时间:2016-07-10 04:03:04

标签: objective-c uiview ios8 autolayout

我有一个UIView作为孩子,我希望在视图将其方向从横向转换为纵向或反之时获取中心x和y原点的更新值。我正在使用Autolayout

我已尝试过这两种方法,但这些方法中的值没有更新。

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator

-(void)willTransitionToTraitCollection:(UITraitCollection *)newCollection withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator

任何人都可以告诉我,这是他们改变方向和更新价值时执行的任何方法。

2 个答案:

答案 0 :(得分:1)

转换后调用以下方法。您可以在此方法中查看。

func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?)

答案 1 :(得分:0)

您还可以在

中跟踪排名
-(void) layoutSubviews

或者如果您使用的是控制器:

-(void) viewDidLayoutSubviews 

每次重绘视图时都会调用此方法,这意味着在更改方向后也会调用它。 另外,仅供参考,我更喜欢不使用此方法来设置任何新布局,而只是按照您的要求获取位置。如果在此方法中设置框架,则可能会出现一些不良行为,难以调试;)