5

我正在使用以下代码创建 UIview:

UIview* baseView = [[UIview alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
//self.view = baseView;
[self.view addSubview:baseView];
[baseView setBackgroundColor:[UIColor blackColor]];
baseView.userInteractionEnabled = YES;
baseView.alpha = 0.7;

唯一的问题是,即使我使用 mainScreen 选项将其设置为全屏,除了 UIWindow 顶部的 5 厘米线外,它仍会显示为全屏。这有什么原因吗?

4

1 回答 1

17

好的,所以发生这种情况的原因是因为[[UIScreen mainScreen] applicationFrame]将返回窗口的框架减去状态栏的大小(如果它是可见的)。

要解决它,一个简单的方法是:

 UIView* baseView = [[UIView alloc] initWithFrame:CGRectMake(0,
                                                             0,
                                                             [[UIScreen mainScreen] applicationFrame].size.width,
                                                             [[UIScreen mainScreen] applicationFrame].size.height)];
//self.view = baseView;
[self.view addSubview:baseView];
[baseView setBackgroundColor:[UIColor blackColor]];
baseView.userInteractionEnabled = YES;
baseView.alpha = 0.7;
于 2013-03-20T17:09:01.040 回答