如何以编程方式为iOS中的所有设备全屏设置UIView?

时间:2014-09-11 10:12:47

标签: ios

我必须以编程方式为所有设备设置全屏UIView,例如:iPhone 3GS,4,4S,5,5S,5C。

我用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像素为白色。我该怎么办呢。 ?

2 个答案:

答案 0 :(得分:8)

试试这个:

 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] bounds] & [[UIScreen mainScreen] applicationFrame]

当您使用UIScreen获取它的界限时,您将获得整个设备屏幕。 (包括状态栏)。除了在applicationFrame边界坐标系中返回UIScreen之外,两个调用之间没有关系。

答案 1 :(得分:1)

UIView  *myview = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds];
[myview setBackgroundColor:[UIColor grayColor]];
[self.window addSubview: myview];

 NSLog(@"FRAME: %@",NSStringFromCGRect(myview.bounds));
  

2014-09-11 12:17:37.451测试[21793:60b]框架:{{0,0},{320,480}}