您好我想获得主视图的宽度和高度。我想在横向或纵向模式下使用正确的值。我尝试了以下内容:
NSLog(@"aaa %f", [UIScreen mainScreen].applicationFrame.size.width);
NSLog(@"zzz %f", self.view.frame.size.width);
这些在横向模式下提供300,在纵向模式下提供320,是的在纵向模式下更大。所以..我的视图占据整个屏幕( - 状态栏)所以我希望横向模式为480,纵向模式为320。其余像素发生了什么。我必须对这些值进行硬编码吗?感谢。
答案 0 :(得分:99)
以下任何一行都适合您吗?
[[UIScreen mainScreen] bounds].size.height
[[UIScreen mainScreen] bounds].size.width
我想你可以减去状态栏的高度?也许我不理解你的问题
答案 1 :(得分:9)
试试这个:
UIWindow* window = [UIApplication sharedApplication].keyWindow;
NSLog(@"%f",window.frame.size.width);
答案 2 :(得分:6)
根据设备方向为您提供正确尺寸的有用宏:
#define SCREEN_WIDTH ((([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortrait) || ([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortraitUpsideDown)) ? [[UIScreen mainScreen] bounds].size.width : [[UIScreen mainScreen] bounds].size.height)
#define SCREEN_HEIGHT ((([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortrait) || ([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortraitUpsideDown)) ? [[UIScreen mainScreen] bounds].size.height : [[UIScreen mainScreen] bounds].size.width)