我希望能够在选择时更改 UITabBarItem 上突出显示的状态图像?是否可以继承和访问它?还是我需要滚动自己的导航代码?
-> 开始编辑我之前没有明确说明我在寻找什么。我正在寻找设备添加到 UITabBar 的选定状态/图像的半透明白色覆盖参考。看图!http://solomon71.com/images/UITabBarItem.png
我希望能够在选择时更改 UITabBarItem 上突出显示的状态图像?是否可以继承和访问它?还是我需要滚动自己的导航代码?
-> 开始编辑我之前没有明确说明我在寻找什么。我正在寻找设备添加到 UITabBar 的选定状态/图像的半透明白色覆盖参考。看图!http://solomon71.com/images/UITabBarItem.png
没有记录或支持的方式来设置您自己的突出显示图像。话虽如此,在 2.2 中,您可以通过继承 UITabBarItem 并实现-[UIImage *)selectedImage
.
严格来说,您不是在调用私有 API,因为 selectedImage 不是保留的方法名称(实际上是一个相当合理的名称供某人使用)。话虽如此,我确信这不是故意的,它可能会在未来的版本中随时中断。如果这已经在 3.x 中被破坏,我不会感到震惊(我从未发布过任何这样做的东西,只是为客户进行了试验)。
试试这个。
我已经更改了选定的 tabbatitem 图像,例如 -
在标签栏控制器委托方法中
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
if([tabBarController selectedIndex] == 0)
{
[viewController.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"selected.png"]withFinishedUnselectedImage:[UIImage imageNamed:@"unselect.png"]];
}
}
通过这个你可以改变你的形象。
或者您可以直接在视图控制器中使用 init(或 ViewWillAppear)方法,例如
[viewController.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"selected.png"]withFinishedUnselectedImage:[UIImage imageNamed:@"unselect.png"]];