UItabBarItem 高亮状态图片
Posted
技术标签:
【中文标题】UItabBarItem 高亮状态图片【英文标题】:UItabBarItem highlight state image 【发布时间】:2009-11-08 22:10:43 【问题描述】:我希望能够在 UITabBarItem 被选中时更改突出显示的状态图像?是否可以子类化和访问它?还是我需要滚动自己的导航代码?
-> 开始编辑 我之前没有明确说明我在寻找什么。我正在寻找设备添加到 UITabBar 的选定状态/图像的半透明白色覆盖参考。看图! http://solomon71.com/images/UITabBarItem.png
【问题讨论】:
你能在标签被选中或取消选中时交换图标吗? 【参考方案1】:没有记录或支持的方式来设置您自己的突出显示图像。话虽如此,在 2.2 中,您可以通过继承 UITabBarItem 并实现 -[UIImage *)selectedImage
来做到这一点。
严格来说,您并没有调用私有 API,因为 selectedImage 不是保留的方法名称(实际上是一个相当合理的名称供某人使用)。话虽如此,我确信这不是故意的,它可能会在未来的版本中随时中断。如果这已经在 3.x 中被破坏,我不会感到震惊(我从未发布过任何这样做的东西,只是为客户进行了试验)。
【讨论】:
感谢您提供此信息。在 3.0 模拟器中,这仍然有效。请参阅我编辑的问题。【参考方案2】:试试这个。
我已经更改了选定的 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"]];
【讨论】:
以上是关于UItabBarItem 高亮状态图片的主要内容,如果未能解决你的问题,请参考以下文章
iPhone XR iOS 12 UITabBarItem 标题重叠在图片上方
UITabBarItem 外观 -setTitleTextAttributes 不断记录“状态 = 1 被解释为 UIControlStateHighlighted”?