2015-08-09 3 views
15

Я работаю с дневным и ночным режимами для приложения. Проблема заключается в том, что при установке цвета фона для просмотра И ТОГДА, используя его как «представление как поппер», есть небольшие белые артефакты (см. Рисунок)Как полностью раскрасить цвет фона UIPopoverPresentationController?

Есть ли простой способ исправить это? Возможно, мне придется написать собственный UIView?

enter image description here

ответ

15

Вы можете установить UIPopoverPresentationController-х backgroundColor. Если этого недостаточно, вам нужно будет настроить ваш popover's UIPopoverBackgroundView. Это дает вам контроль над всем фоном, включая маленький треугольник.

+0

К сожалению, вы не могли бы дать мне немного пример или руководство. У меня не было смысла с popoverBackgroundViewClass. В Interface Builder у меня есть UIViewController, который должен отображаться как Popover. Я реализовал класс, который наследуется от UIPopoverBackgroundView. В другом виде контроллер - это кнопка, которая вызывает popover по команде. В методе «prepareForSegue» я настройки config.popoverPresentationController? .popoverBackgroundViewClass = CustomPopoverBackgroundView.self. С наилучшими пожеланиями – Mario

+0

Он всегда сбой с "*** Завершение приложения из-за неперехваченного исключения" NSInternalInconsistencyException ", причина: '- [UIPopoverBackgroundView contentViewInsets] должна быть реализована подклассами.'". – Mario

+3

«Извините, не могли бы вы дать мне небольшой пример или руководство». Конечно: https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch09p476popovers/ch22p751popovers/MyPopoverBackgroundView.swift – matt

2

Вот несколько примеров для дополнения ответа мата.

popoverController.popoverPresentationController?.backgroundColor = myColor 

или

self.navigationController?.popoverPresentationController?.backgroundColor = myColor 
Смежные вопросы