尝试更改多个标签和图片宽度取决于设备旋转后的屏幕边界。这是我尝试过的:
- (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));
}
}
当我改变方向时,它应该记录不同的宽度和高度
(例如iphone5:{480,320}& {320,480})
在ios8上正常工作, 但我在ios7模拟器和ios7设备上测试的结果大小相同。
任何想法都会受到赞赏。
答案 0 :(得分:0)
仅限iOS8
[UIScreen mainScreen].bounds
是面向接口的(参见WWDC 2014的会议“iOS 8中的View Controller Advancements”),这意味着在iOS8的横向模式下,高度和宽度都是相反的。
您可以创建如下所示的辅助方法,以获得相同的行为:
+(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;
}