2016-07-10 74 views
0

我有一個UIView作爲一個孩子,我想要獲取中心x和y原點的更新值,當視圖將其方向從風景轉換爲人像或反之亦然時。我正在使用Autolayout獲取方向更改後UIView的更新中心位置iOS8

我已經嘗試了這兩種方法,但這些方法中的值並未更新。

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

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

任何人都可以告訴我,這是他們的任何方法,當方向改變和值更新時執行。

+0

你不能使用'viewWillLayoutSubviews'/'viewDidLayoutSubviews'嗎? –

回答

1

轉換後調用以下方法。你可以檢查這個方法。

func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) 
0

您還可以跟蹤位置

-(void) layoutSubviews 

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

-(void) viewDidLayoutSubviews 

這種方法是調用每一個你的看法是重繪時間,這意味着它會在改變方向後也會被調用。 也僅供參考,我寧願不使用此方法來設置任何新佈局,但只是按照您的要求獲取位置。如果你在這個方法中設置幀,你可能會有一些不好的行爲,很難調試;)