Я согласен, что вы должны быть очень осторожны, чтобы иметь реальное обоснование для повторения того, что уже есть , но если вам это действительно нужно, это просто:
Создать изображение в формате PNGс тем же размером, что и экран целевого устройства, с альфа.T Заполните изображение черным и добавьте радиальный градиент непрозрачности, чтобы в центре он был относительно прозрачным, а к краям экрана он был более прозрачным.Этот эффект называется виньетированием.Возможно, в предпочитаемом вами редакторе изображений даже есть фильтр виньетирования, который вы можете использовать на полностью прозрачном изображении.
Этот подход к изображениям также имеет то преимущество, что позволяет вам использовать совершенно разные эффекты затухания фона.
Создайте UIImageView
с изображением виньетки и прозрачным фоном.Добавьте представление в окно вашего приложения поверх всех других представлений, но под вашим предупреждением:
UIImageView *vignetteView = [[UIImageView alloc] initWithImage: [UIImage imageNamed:@"vignette.png"]];
vignetteView.backgroundColor = [UIColor clearColor];
vignetteView.userInteractionEnabled = YES; //this means users won't be able to touch the UI elements below
[self.view.window insertSubview: vignetteView belowSubview: myAlertView];