我想在取向改變後得到我UIView的大小。在我的視圖控制器中,我實現了didRotateFromInterfaceOrientation:並在我的視圖中調用setNeedsLayout:。在我的視圖的layoutSubviews方法中,它試圖根據新的幀大小旋轉後執行一些邏輯,但幀大小並未更新以反映新的方向(例如,在移至橫向後,它仍然是768x1024而不是1024x768)。iOS UIView旋轉後得到幀
如何獲取更新的幀大小?
我想在取向改變後得到我UIView的大小。在我的視圖控制器中,我實現了didRotateFromInterfaceOrientation:並在我的視圖中調用setNeedsLayout:。在我的視圖的layoutSubviews方法中,它試圖根據新的幀大小旋轉後執行一些邏輯,但幀大小並未更新以反映新的方向(例如,在移至橫向後,它仍然是768x1024而不是1024x768)。iOS UIView旋轉後得到幀
如何獲取更新的幀大小?
請嘗試此方法。此方法將在rotation.Hope這可能會幫助你自動調用。謝謝。
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) {
NSLog(@"%f,%f",self.view.frame.size.width,self.view.frame.size.height);
} else if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) {
NSLog(@"%f,%f",self.view.frame.size.width,self.view.frame.size.height);
}
}
對我來說,這個問題是視圖中的視圖從視圖控制器中向下幾個級別(如在視圖控制器視圖的子視圖的子視圖中)。我不知道如何以合理的方式從視圖控制器獲取此信息。 – phosphoer
您是否嘗試過使用邊界? – Pochi
Derp,爲我修好了!謝謝! – phosphoer
爲什麼這個工作? – Remover