Настройка вида фона UIPopoverController и цвета границы

Можно ли изменить цвет рамки, стиль / цвет панели навигации и стиль / цвет стрелки для всплывающего окна? Если так, то как? Если какой-то пример кода доступен, то это будет здорово!

8 ответов

Решение

К несчастью, UIPopoverController не настраивается так. Вы не можете изменить цвет границы, стиль / цвет панели навигации или стиль / цвет стрелки: Как настроить / стилировать UIPopoverController.

iOS 7 и выше, вы можете изменить backgroundColor из UIPopoverController который влияет на цвет фона навигации, а также стрелки поповера.

@property (nonatomic, copy) UIColor *backgroundColor NS_AVAILABLE_IOS(7_0);

Пример использования:

    if ([self.popoverVC respondsToSelector:@selector(setBackgroundColor:)]) {   // Check to avoid app crash prior to iOS 7
        self.popoverVC.backgroundColor = [UIColor greenColor];
    }

Примечание. На данный момент (iOS 7.0.3) в некоторых случаях (например, установка цвета с помощью colorWithPatternImage:) симулятор не учитывает цвет, но на устройстве он работает нормально.

Проверьте эту классную ссылку.....

Для iOS5,

http://thinkvitamin.com/code/ios/customizing-the-design-of-uipopovercontroller/

С уважением, Арун.

Теперь в iOS 5 доступен popoverBackgroundViewClass.

Начиная с ios 5, вы можете многое сделать, просто попробуйте эту библиотеку https://github.com/ddebin/DDPopoverBackgroundView вы можете настроить цвет оттенка границы, ширину бодрера, а также стрелку

посмотрите документацию

Панель навигации и панель инструментов внутри всплывающего окна - это просто стандартные UINavigationBar и UIToolBar, мне удалось изменить их внешний вид так же, как и с помощью обычной панели навигации или панели инструментов. Граница, однако, не легко настраивается.

Здесь я разработал хорошее решение для этой проблемы:

изменить цвет контроллера навигации в поповере

удачи!

Вы можете использовать ElegantPopover cocoapod, чтобы выполнить некоторые из этих задач.

Я пытаюсь обмануть его, настраивая viewcontroller внутри popover, а затем скрывая границу popover, используя этот код

UIView * border = [[insideViewController.view.superview.superview.superview subviews] objectAtIndex:0];  
border.hidden = YES;

Приложение на самом деле все еще находится в разработке, поэтому я надеюсь, что другие люди прокомментируют это решение.

Другие вопросы по тегам