2010-08-31 4 views
0

Я хочу применить пользовательское значение альфа к заголовку UINavigationBar. UINavigationBar является частью UINavigationController, а UINavigationController является частью UITabBarController.Подклассификация UINavigationBar в Xcode

Редактировать: Вот изображение того, что я создал с помощью UIToolbar и UILabel. Я хочу сделать то же самое, используя титул в UINavigationController: http://i.stack.imgur.com/B8YX0.png

Я думаю, что единственный способ сделать это было бы подкласс UINavigationBar и переопределить метод, который позволяет мне установить альфа, когда он обращается.

Вот мои вопросы:

  1. Является ли это правильный способ сделать это?
  2. Каковы HIG последствия этого?
  3. Я новичок в подклассификации в Objective-C, вы можете предоставить руководство или учебник, который поможет мне понять шаги, необходимые для подклассификации элемента U12 элемента и осуществления изменения?
  4. Когда я получу настройки подкласса, я могу просмотреть его в IB, изменив класс UINavigationBar на мой пользовательский класс, правильно?
  5. Есть ли какие-либо «gotchas», которые могут придумать, чтобы сделать так, чтобы эксперт , как и вы, мог дать мне голову?

ответ

3

Это то, что вы не должны делать. Почему вы хотите изменить этот цвет, но не общую непрозрачность панели? это уменьшает читаемость. Есть несколько проблем:

  • нет общественного API, так что это не тривиального
  • манипуляции с подобозрением хрупким, может сломаться и может иметь побочные эффекты
  • это не предусмотрено, чтобы сделать - альфа-значение зрения используется и анимированные при нажатии/выскакивает контроллер

Если вы действительно хотите сделать это, есть только один чистый, общественный способ: Дайте каждый навигационный элемент для толкания пользовательского заголовка Посмотреть. Вы можете вмешиваться в это, сколько хотите. Таким образом, можно установить вид с UILabel в качестве подсмотра и с его альфа-настройкой на 0,5.

0

Когда навигационная панель управляется навигационным контроллером, есть только несколько свойств, которые вы можете изменить (см. docs). Один из них - translucent, который настраивает альфа, но только на значение, определенное Apple.

+0

Я не хочу изменять полупрозрачное свойство самого NavigationBar, а не ярлыка заголовка, содержащегося внутри. Могу ли я изменить через полупрозрачную альфу названия? Я добавил ссылку на сообщение на фотографию того, что я пытаюсь выполнить. –

Смежные вопросы