我有一个UIView
作为孩子,我希望在视图将其方向从横向转换为纵向或反之时获取中心x和y原点的更新值。我正在使用Autolayout
我已尝试过这两种方法,但这些方法中的值没有更新。
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
-(void)willTransitionToTraitCollection:(UITraitCollection *)newCollection withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
任何人都可以告诉我,这是他们改变方向和更新价值时执行的任何方法。
答案 0 :(得分:1)
转换后调用以下方法。您可以在此方法中查看。
func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?)
答案 1 :(得分:0)
您还可以在
中跟踪排名-(void) layoutSubviews
或者如果您使用的是控制器:
-(void) viewDidLayoutSubviews
每次重绘视图时都会调用此方法,这意味着在更改方向后也会调用它。 另外,仅供参考,我更喜欢不使用此方法来设置任何新布局,而只是按照您的要求获取位置。如果在此方法中设置框架,则可能会出现一些不良行为,难以调试;)