[英]Which one is best in “self.view.window?.addSubview()” or “UIApplication.shared.keyWindow?.addSubview()” in iOS
[英]How can I add UIView object to self.view.window in ios7?
我想添加一个覆盖整个屏幕的暗视图层。
为了做到这一点,我将UIView
对象添加到UIViewController
window属性中,如下所示。我记得我能够在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];
}
这是做你想做的事的一种方式:
[[UIApplication sharedApplication].keyWindow addSubview:overlayView];
根据UIView的文档,如果视图尚未添加到窗口,则窗口属性为nil,这是调用viewDidLoad时的情况。
你可以在viewDidAppear:(BOOL)animated;
做同样的事情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];
}
斯威夫特3
UIApplication.shared.keyWindow?.addSubview(overlayView);
你可以这样试试
- (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];
}
我希望对你有所帮助......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.