Ответ 1
Здесь один из способов сделать то, что вы хотите:
[[UIApplication sharedApplication].keyWindow addSubview:overlayView];
Я хотел бы добавить темный слой, который охватывает весь экран.
Чтобы сделать это, я добавил свойство UIView
object to window из UIViewController
, как показано ниже. Я помню, что мне удалось добавить представление к window
, как это в ios6. Но в 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, свойство 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];
}
Swift 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];
}
Надеюсь, вам будет полезно...