我想添加一个覆盖整个屏幕的暗视图层。
为此,我将UIView
对象添加到UIViewController
的窗口属性中,如下所示。我记得我能够在ios6中添加如下所示的视图到window
中。但是,它在ios7中不起作用。
我怎么才能让它工作呢?
提前感谢!!
- (void)viewDidLoad
{
[super viewDidLoad];
UIView *overlayView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];
overlayView.backgroundColor = [UIColor blackColor];
overlayView.alpha = 0.8;
[self.view.window addSubview:overlayView];
}
发布于 2014-02-04 17:41:45
下面是你想要做的一种方式:
[[UIApplication sharedApplication].keyWindow addSubview:overlayView];
发布于 2014-02-04 17:49:35
根据UIView的文档,如果还没有将视图添加到窗口,则window属性为nil,这是调用viewDidLoad时的情况。
您可以在viewDidAppear:(BOOL)animated;
中做同样的事情
- (void)viewDidAppear:(BOOL)animated; {
UIView *overlayView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];
overlayView.backgroundColor = [UIColor blackColor];
overlayView.alpha = 0.8;
[self.view.window addSubview:overlayView];
}
发布于 2014-02-04 17:47:46
你可以这样试一下
- (void)viewDidLoad
{
[super viewDidLoad];
UIView *overlayView = [[UIView alloc] initWithFrame:self.view.frame];
overlayView.backgroundColor = [UIColor blackColor];
overlayView.alpha = 0.8;
overlayView.center = self.view.center
[self.view addSubview:overlayView];
}
我希望能对你有所帮助。
https://stackoverflow.com/questions/21548593
复制相似问题