Цвет фона по умолчанию - черный. Как изменить цвет, аналогично tintColor
для панелей навигации?
Можно ли настроить цвет UIMenuController?
Ответы (3)
Я почти уверен, что это невозможно. Вы можете что-то придумать, если разделите это на подклассы.
РЕДАКТИРОВАТЬ: Я взглянул на файл UIMenuController.h, и, похоже, нет очевидных способов изменить цвет. Это подкласс NSObject, если это вам поможет. Кроме того, если вы посмотрите, как люди создают подкласс UITabBarController, чтобы изменить его цвет, вы можете найти аналогичное решение.
sharedMenuController
, поэтому я не могу создать его подкласс. Спасибо за ответ!
- person James Skidmore; 29.03.2011
Возможное решение для изменения цвета текста состоит в использовании прокси внешнего вида UIButton внутри UIMenuController. Дело в том, что он напрямую использует частный подкласс UIButton, используемый Apple в контроллере меню. Я бы никогда не рекомендовал получить доступ к частному классу Apple (и, более того, через его имя), но в этом конкретном случае настройки цвета Контроллера меню я думаю, что это лучшее решение. Это позволяет вам определить чистый способ внешнего вида вашего представления.
Swift
(NSClassFromString("UICalloutBarButton")! as! UIButton.Type).appearance().setTitleColor(UIColor.redColor(), forState: UIControlState.Normal)
Цель-C
[[NSClassFromString(@"UICalloutBarButton") appearance] setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
Вы можете установить цвет фона UIMenuController следующим образом:
Цель-C
[[NSClassFromString(@"UICalloutBarButton") appearance] setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0.8]];
Убедитесь, что вы используете цвет с прозрачностью / альфа, иначе это вызовет ошибку.