這將能夠更好地實現爲靜態方法,而不是#define語句:
+(CGFloat)screenWidth
{
if(UIInterfaceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation)){
return [UIScreen mainScreen].bounds.size.width;
}else{
[UIScreen mainScreen].bounds.size.height;
}
}
+(CGFloat)screenHeight
{
if(UIInterfaceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation)){
return [UIScreen mainScreen].bounds.size.height;
}else{
[UIScreen mainScreen].bounds.size.width;
}
}
要知道,當屏幕旋轉時,您可以使用訂閱UIApplicationWillChangeStatusBarOrientationNotification
和UIApplicationDidChangeStatusBarOrientationNotification
NSNotificationCenter:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didRotate:) name:UIApplicationDidChangeStatusBarOrientationNotification object:nil];
而且實施方法來處理通知:
-(void)didRotate:(NSNotification*)notification
{
// Layout your views
}
視圖控制器在屏幕更改方向時自動更改界限 - 爲什麼需要屏幕大小而不是視圖控制器大小? – michaels
我需要的屏幕大小爲我所有的xibs的是專爲iphone,所以如果我看的viewController大小我不能部署在iPad上的應用程序。 – HurkNburkS
爲什麼沒有單獨的iPad XIB?就像@ michael所說,視圖控制器通常只是給你的視圖旋轉一個新的大小,然後你根據新的大小做一個佈局。 – nielsbot