如何以编程方式在iOS中为全部设备设置UIView?

问题描述:

我必须设置一个UIView全屏编程方式为所有设备,如:iPhone 3GS,4,4S,5,5S,5C。如何以编程方式在iOS中为全部设备设置UIView?

我GOOGLE了很多次,并得到一个答案,但它不正确。底部20像素少。我分享我的截图请看看,让我知道我必须做什么。

enter image description here

我的代码是:

  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像素是白色的。我怎样才能管理。 ?

+1

”ApplicationFrame是屏幕大小减去状态栏的大小(如果可见),边界是屏幕大小,不管状态栏如何。“ :http://*.com/q/3120139/2791407 – 2014-09-11 10:21:15

+0

您是否使用autolayout? – 2014-09-11 10:22:05

+0

否@Santosh Sharma – user3631436 2014-09-11 10:24:48

尝试这一个:

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}}