Подтвердить что ты не робот

Как удалить глянцевую подсветку на выбранном UITabBarItem в iOS?

По умолчанию в UITabbar на выбранном UITabBarItem есть глянцевая подсветка.

Можно ли удалить глянцевую маску выделения?

Спасибо.

4b9b3361

Ответ 1

[[UITabBar appearance] setSelectionIndicatorImage:[[UIImage alloc] init]];

Работает как шарм!

Ответ 2

[[UITabBar appearance] setSelectionIndicatorImage:[UIImage {anImage}]]

это влияет на каждую используемую вами панель (даже подклассы)

Если вы используете изображение, имеющее тот же цвет, что и фон на вкладке, вы не увидите индикатор.

Возможно, вы даже можете использовать полностью прозрачное изображение или изображение, которое 1px * 1px.

Ответ 3

Если вы настраиваете элементы панели табуляции с настраиваемыми изображениями, вы можете сделать это. Я настраивал элементы панели табуляции, добавляя фоновое изображение в панель вкладок со всеми выделенными вкладками, одной вкладкой в ​​выбранном состоянии и другими в невыбранном состоянии. В каждом didSelectViewController я меняю фоновое изображение. Затем, я привожу изображение фонового изображения на передний план и добавляю пользовательские ярлыки с нужным заголовком.

Результат: у меня есть настраиваемая панель вкладок без эффекта глянца. Интересно, что UITabBarButtons находятся под фоновым изображением, но по-прежнему можно выбрать.

Код выглядит примерно так:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
    [self customizeTabBar];
}

- (void)customizeTabBar {

    NSString *imageName = [NSString stringWithFormat:@"tabbg%i.png", tabBarCtrl.selectedIndex + 1];

    for(UIView *view in tabBarCtrl.tabBar.subviews) {  
        if([view isKindOfClass:[UIImageView class]]) {  
            [view removeFromSuperview];  
        }  
    }  
    UIImageView *background = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:imageName]] autorelease];
    [tabBarCtrl.tabBar insertSubview:background atIndex:0]; 
    [tabBarCtrl.tabBar bringSubviewToFront:background];
        //if needed, here must be adding UILabels with titles, I didn't need it.

}  

Возможно, вас это заинтересует:)

Ответ 4

В соответствии с документацией Apple вы можете реализовать:

(void)setFinishedSelectedImage:
      (UIImage *)selectedImage withFinishedUnselectedImage:
      (UIImage *)unselectedImage

Какой метод UITabBar

Вот ссылка.