Лучший способ затемнить экран целого приложения для iOS - PullRequest
0 голосов
/ 19 октября 2018

В моем приложении мне нужно затемнить весь экран во всем приложении.Я делаю это с помощью оверлейного свойства 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;

Это работает довольно хорошо, за исключением двух конкретных случаев:

  1. Внутренняя часть (всепод панелью навигации) в QLPreviewController не получает прикосновений при отображении чего-либо, кроме изображения (странно с изображениями, оно работает нормально).
  2. То же самое происходит с UIImagePickerController;не получает прикосновений под панелью навигации.

Мои вопросы:

  • Что эти два контроллера делают по-разному?
  • Как бы вы порекомендовали решить проблему??Есть ли другие подходы, кроме использования оверлея UIWindow?
...