iOS 5: интересует UIAppearance
На tech talk 2011 я увидел речь о новомUIAppearance
протокол, Там еще не так много документации. Я кратко изложу то, что я помню, чтобы объяснить, откуда мой вопрос:
ОколоUIAppearance
:
До сих пор вам приходилось настраивать КАЖДОЕ свойство панели навигации (панель инструментов и т. Д.) Во всех контроллерах представления вашего приложения. С новым свойством внешнего вида вы можете сделать это только в одном месте для всех панелей навигации в вашем приложении. Например: если вы хотите настроить фоновое изображение панели навигации, вы можете сделать это следующим образом:
[[UINavigationBar appearance] setBackgroundImage:
[UIImage imageNamed:@"MyImageName"] forBarMetrics:UIBarMetricsDefault];
Это установит фоновое изображение ВСЕХ панелей навигации в вашем приложении. СbarMetrics
Вы указываете, хотите ли вы, чтобы изображение использовалось также в альбомном режиме или нет.
Если вы хотите указать внешний вид, который будет применяться только в некоторых контроллерах представления, в документах также есть метод для управления этим путем указания расположения ваших объектов:
[[UIBarButtonItem appearanceWhenContainedIn:
[ABPeoplePickerNavigationController class], nil] setTintColor:myNavBarColor];
Также стоит отметить, что если у вас есть отдельные настраиваемые экземпляры, отличающиеся от ваших настроек внешнего вида, эти экземпляры не будут затронуты прокси-сервером внешнего вида.
Некоторые вопросы:
а) Как узнать, какие свойства класса работают со свойством внешнего вида? Например, посколькуUITableView
соответствует протоколу UIAppearance, я думал, что мог бы сделать что-то вроде
[[UITableView appearance] setBackgroundColor:mytableViewColor];
манипулировать цветом фона всех моих табличных представлений, но я не могу!
б) Есть ли список всех классов, которыми можно манипулировать со свойством внешнего вида?
в) В какой момент вызывается настройка внешнего вида? Я надеялся внести изменения, бросили свойство внешнего вида во время выполнения, но, к сожалению, изменения не происходят.