UITabBar полностью прозрачный - PullRequest
4 голосов
/ 02 марта 2012

В XCode я использую конструктор интерфейса (StoryBoard), чтобы выложить большую часть моего макета. Однако я хочу немного нестандартного рисунка на этом. Это работает довольно хорошо.

Однако есть проблема, с которой я сталкиваюсь. У меня есть "укус" из активной вкладки. (см. http://cl.ly/Efno) Я хочу, чтобы этот укус был полностью прозрачным. (Я установил розовый цвет фона, чтобы увидеть, какую часть я хочу сделать прозрачной, а не прозрачной.)

То, как я изменил внешний вид, заключается в следующем.

  • Установите класс UITabBar для моего собственного класса в конструкторе интерфейса для соответствующей панели вкладок.
  • В awakeFromNib этого класса я установил положение метки и изображение и выбрал изображение для каждого элемента панели вкладок. Вот так

    [tabBarItem setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:image];
    

Каждое изображение полностью покрывает всю панель вкладок по высоте и имеет ширину самого элемента вкладки.

  • Установить фоновое изображение панели вкладок на none (полностью прозрачное изображение)
  • Установите цвет фона панели вкладок на полностью прозрачный (теперь у меня есть розовый цвет, чтобы увидеть, где он идет не так)
  • В конструкторе интерфейса снимите флажок "непрозрачный" для панели вкладок.

Однако он не прозрачный, розовая часть черная. Как я могу сделать это прозрачным?

Спасибо

1 Ответ

4 голосов
/ 02 апреля 2012

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

Например

UIImage *tabBarBackground = [UIImage imageNamed:@"tabBarBackground.png"];
[[UITabBar appearance] setBackgroundImage:tabBarBackground];
[[UITabBar appearance] setSelectedImageTintColor:[UIColor colorWithRed:127.0/255.0 green:186.0/255.0 blue:235.0/255.0 alpha:1.0]];
[[UITabBar appearance] setSelectionIndicatorImage:[UIImage imageNamed:@"tabBarItemSelected.png"]];
...