![](/img/trans.png)
[英]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.