Pat*_*ick 0 iphone xcode objective-c uitabbarcontroller
我正在使用自定义标签栏图像,中间标签也是自定义图像(很像旧版本的Instagram).
这是我的一些代码:
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
UITabBar *tabBar = tabBarController.tabBar;
[tabBar setBackgroundImage:[UIImage imageNamed:@"CustomTabBar.png"]];
UITabBarItem *tabBarItem3 = [tabBar.items objectAtIndex:2];
tabBarItem3.title = nil;
tabBarItem3.image = nil;
[tabBarItem3 setFinishedSelectedImage:[UIImage imageNamed:@"tab-button-selected.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"tab-button.png"]];
Run Code Online (Sandbox Code Playgroud)
这很好用,但我有一个问题我无法解决.默认情况下,所选选项卡具有浅灰色背景.这是我想要保留的效果,但不适用于中间选项卡.中间选项卡是一个较大的圆形图像,在选中时会发生变化,但仍会出现灰色背景.
有没有办法删除这个,[tabBar setSelectionIndicatorImage:[[UIImage alloc] init]];但仅限于该选项卡.或者,在应用程序委托中,检测选项卡中的更改并将其删除?
好的,所以事实证明一个不错的午餐时间步行真的有助于这些情况.以下是我遇到类似问题的人的答案.
我首先包含<UITabBarControllerDelegate>在我的应用代表的.h中.在didFinishLaunchingWithOptions方法中我设置了标签栏的代理:
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
tabBarController.delegate = self;
Run Code Online (Sandbox Code Playgroud)
然后我可以使用此方法切换是否显示背景图像:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
UITabBar *tabBar = tabBarController.tabBar;
if (tabBar.selectedItem == [tabBar.items objectAtIndex:2]) {
[tabBar setSelectionIndicatorImage:[[UIImage alloc] init]];
}
else {
[tabBar setSelectionIndicatorImage:nil];
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3099 次 |
| 最近记录: |