В моем приложении мне нужно затемнить весь экран во всем приложении.Я делаю это с помощью оверлейного свойства UIWindow *alphaWindow
, например:
self.alphaWindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.alphaWindow.backgroundColor = [UIColor blackColor];
self.alphaWindow.windowLevel = UIWindowLevelAlert+1;
self.alphaWindow.hidden = NO;
self.alphaWindow.userInteractionEnabled = NO;
self.alphaWindow.rootViewController = [UIViewController new];
self.alphaWindow.alpha = 0.5;
Это работает довольно хорошо, за исключением двух конкретных случаев:
- Внутренняя часть (всепод панелью навигации) в
QLPreviewController
не получает прикосновений при отображении чего-либо, кроме изображения (странно с изображениями, оно работает нормально). - То же самое происходит с
UIImagePickerController
;не получает прикосновений под панелью навигации.
Мои вопросы:
- Что эти два контроллера делают по-разному?
- Как бы вы порекомендовали решить проблему??Есть ли другие подходы, кроме использования оверлея UIWindow?