setFinishedSelectedImage:withFinishedUnselectedImage:
在 iOS7 中已弃用。Apple建议使用 setterimage
和selectedImage
withUIImageRenderingModeAlwaysOriginal
来代替。我找不到任何如何使用UIImageRenderingModeAlwaysOriginal
. 所以问题很简单:如何UITabBarItem
在 iOS7 中设置图像?
问问题
11835 次
3 回答
57
如果您正在尝试在 UITabBar 上显示实际图像,请使用以下代码。
[yourTabBarItem setImage:[[UIImage imageNamed:@"more.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
如果您想以原始状态显示所选图像,请使用以下命令
[yourTabBarItem setSelectedImage:[[UIImage imageNamed:@"more.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
这两个是替代品
setFinishedSelectedImage: withFinishedUnselectedImage:
于 2013-11-22T10:44:19.653 回答
6
已setFinishedSelectedImage
弃用,因为 Apple 希望将接口直接用于使用模板图像和您选择的 tintColor(或蓝色默认值)。因此,简单的默认值以这种方式处理选项卡栏项。
如果您仍需要按设计使用图标图像,请使用始终原始的渲染模式创建图像。像:
[[UIImage imageNamed:@"YourIcon.png"] imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal];
要设置图标,您需要tabBarItem
从ViewController
. 我在我的应用程序中错过的是我的每个选项卡都有一个NavigationController
包装在选项卡中的顶视图控制器。关于这个主题的大多数答案都没有提到获得 navigationContoller,这是让它在我的应用程序中运行的关键。
因此,在我的 UITableViewContoller 子类中,我将以下内容添加到 viewDidLoad。
- (void)viewDidLoad
{
[super viewDidLoad];
...
[self.navigationController.tabBarItem setSelectedImage:[[UIImage imageNamed:@"MySelectedIcon.png"]
imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal]];
}
结果是选择选项卡时设计的图标。如果不调用 imageWithRenderingMode 方法,图标将被视为使用 tintColor 着色的模板。希望这可以帮助。
于 2013-11-15T18:10:47.283 回答
0
class TabBarController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
self.tabBar.backgroundImage = UIImage()
self.tabBar.shadowImage = UIImage()
}
}
于 2016-06-17T02:01:25.237 回答