По умолчанию в UITabbar на выбранном UITabBarItem есть глянцевая подсветка.
Можно ли удалить глянцевую маску выделения?
Спасибо.
По умолчанию в UITabbar на выбранном UITabBarItem есть глянцевая подсветка.
Можно ли удалить глянцевую маску выделения?
Спасибо.
[[UITabBar appearance] setSelectionIndicatorImage:[[UIImage alloc] init]];
Работает как шарм!
[[UITabBar appearance] setSelectionIndicatorImage:[UIImage {anImage}]]
это влияет на каждую используемую вами панель (даже подклассы)
Если вы используете изображение, имеющее тот же цвет, что и фон на вкладке, вы не увидите индикатор.
Возможно, вы даже можете использовать полностью прозрачное изображение или изображение, которое 1px * 1px.
Если вы настраиваете элементы панели табуляции с настраиваемыми изображениями, вы можете сделать это. Я настраивал элементы панели табуляции, добавляя фоновое изображение в панель вкладок со всеми выделенными вкладками, одной вкладкой в выбранном состоянии и другими в невыбранном состоянии. В каждом 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.
}
Возможно, вас это заинтересует:)
В соответствии с документацией Apple вы можете реализовать:
(void)setFinishedSelectedImage:
(UIImage *)selectedImage withFinishedUnselectedImage:
(UIImage *)unselectedImage
Какой метод UITabBar