2015-01-03 151 views
0

正在嘗試更改多個標籤和圖像寬度取決於設備旋轉後的屏幕邊界。以下是我已經試過:iOS 7旋轉設備未檢測到橫向屏幕邊界

- (void)viewDidLayoutSubviews{ 
    if(UIInterfaceOrientationIsLandscape([[UIDevice currentDevice] orientation])) { 

     CGSize newSize; 

     newSize = CGSizeMake([[UIScreen mainScreen] bounds].size.width,[[UIScreen mainScreen] bounds].size.height); 

     NSLog(@"%@",NSStringFromCGSize(newSize));  

    }else if (UIInterfaceOrientationIsPortrait([[UIDevice currentDevice] orientation])){ 

     CGSize newSize; 

     newSize = CGSizeMake([[UIScreen mainScreen] bounds].size.width,[[UIScreen mainScreen] bounds].size.height); 

     NSLog(@"%@",NSStringFromCGSize(newSize));   
    } 

} 

它應該當我改變方向來登錄不同的寬度和高度

(像:{480320} & {320480})

工作正常在, 但我得到了相同大小的結果測試模擬器和設備。

任何想法,將不勝感激。只有

回答

0

從iOS8上

[UIScreen mainScreen].bounds 

是接口爲本(看會議「視圖控制器的進步在IOS 8」的WWDC 2014),這意味着在iOS8上的高度和寬度橫向模式是相反的。

您可以創建一個helper方法,如下面有相同的行爲:

+(CGRect)getScreenBounds 
{ 
    CGRect bounds = [UIScreen mainScreen].bounds; 
    if (([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) && UIInterfaceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation)) { 
     bounds.size = CGSizeMake(bounds.size.height, bounds.size.width); 
    } 
    return bounds; 
}