如何以编程方式在iOS中为全部设备设置UIView?
问题描述:
我必须设置一个UIView
全屏编程方式为所有设备,如:iPhone 3GS,4,4S,5,5S,5C。如何以编程方式在iOS中为全部设备设置UIView?
我GOOGLE了很多次,并得到一个答案,但它不正确。底部20像素少。我分享我的截图请看看,让我知道我必须做什么。
我的代码是:
UIView *myview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [[UIScreen mainScreen] applicationFrame].size.width, [[UIScreen mainScreen] applicationFrame].size.height)];
[myview setBackgroundColor:[UIColor grayColor]];
[self.view addSubview: myview];
从底部正确地看到它的20像素是白色的。我怎样才能管理。 ?
答
尝试这一个:
UIView *myview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height)];
[myview setBackgroundColor:[UIColor grayColor]];
[self.view addSubview:myview];
我会澄清你,我认为你能理解。
它在[UIScreen mainScreen]界限] & 之间[UIScreen mainScreen] applicationFrame]一点点的区别。
当你的边界为UIScreen
时,你会看到整个设备屏幕。 (包括状态栏)。除了在UIScreen
边界坐标系中返回applicationFrame
之外,两个调用之间没有关系。 “
+0
是的,它的工作正常。感谢您的建议 – user3631436 2014-09-11 10:25:58
答
UIView *myview = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds];
[myview setBackgroundColor:[UIColor grayColor]];
[self.window addSubview: myview];
NSLog(@"FRAME: %@",NSStringFromCGRect(myview.bounds));
2014年9月11日12:17:37.451试验[21793:60B] FRAME:{{0,0},{320,480}}
”ApplicationFrame是屏幕大小减去状态栏的大小(如果可见),边界是屏幕大小,不管状态栏如何。“ :http://stackoverflow.com/q/3120139/2791407 – 2014-09-11 10:21:15
您是否使用autolayout? – 2014-09-11 10:22:05
否@Santosh Sharma – user3631436 2014-09-11 10:24:48