【发布时间】:2016-12-28 11:24:02
【问题描述】:
首先,我是 Swift 的新手,如果我遗漏了一些明显的东西或使用了错误的术语,我深表歉意。
目的:将标签栏项目选中的图片设置为自定义图片。
以下设置有效(所选项目是自定义图像):
| UITabBarController | => | UIViewController | (带故事板的设置)
class MyViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let customSelectedImage = UIImage (named: "selected-image")?.withRenderingMode(.alwaysOriginal)
self.tabBarItem.selectedImage = customSelectedImage
}
}
但此设置不起作用(所选项目具有默认蓝色):
| UITabBarController | => | UINavigationController | => | UIViewController | (带故事板的设置 - see here)
与上面类似的代码,但是(以编程方式)将 UICollectionView 子视图添加到 UIViewController。
class MyViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource {
override func viewDidLoad() {
super.viewDidLoad()
let customSelectedImage = UIImage (named: "selected-image")?.withRenderingMode(.alwaysOriginal)
self.tabBarItem.selectedImage = customSelectedImage
...
//Some UICollectionView related code
...
}
}
一些可能有用的东西:
- 在调试会话中 (see print screen) => 查看 UI 层次结构:所选项目(标记为 UITabBarSwappableImageView 类)具有正确的自定义图像,但色调为默认蓝色。我尝试了不同的自定义图像,看起来好像它们被另一个(默认?)视图隐藏了......
- 如果我在 AppDelegate.swift 应用程序(... didFinishLaunchingWithOptions ...) 函数中更改 UITabBar.appearance().tintColor = UIColor.red,则所选项目具有红色(相对于蓝色)色调。
发生了什么事?
【问题讨论】:
标签: swift image uinavigationcontroller uitabbarcontroller uitabbaritem