如何在 ios swift 中添加彩色图标?
how to add colored icon in ios swift?
我正在尝试添加一个多色图标,当我按照标签栏添加图标时,它显示单一颜色蓝色,图标的实际颜色不可见?
如何在标签栏中添加彩色图标?
这是因为在标签栏中,所有图像都是在渲染模式设置为 template
的情况下显示的,您可以在加载图像时覆盖此强制渲染模式的行为:
let yourImage = UIImage(named: "your_image")?.withRenderingMode(.alwaysOriginal)
然后将您的图像用作标签栏图标。
最好用这样的代码来做:
var aViewController: UIViewController = UIViewController()
//这个语句就是你需要的
var myTabBarItem: UITabBarItem = UITabBarItem(title: nil, image: UIImage(named: "YOUR_IMAGE_NAME")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal), selectedImage: UIImage(named: "YOUR_IMAGE_NAME"))
aViewController.tabBarItem = myTabBarItem
在 x 代码 select 的资产文件夹中,您的图像和属性检查器中 Render As 的值更改为 "Original Image" 而不是 "Default".
不要在情节提要中这样做。试试这个:
extension UITabBarItem {
convenience init(title: String, unselected: String, selected: String) {
let selectedImage = UIImage(named: selected)?.withRenderingMode(.alwaysOriginal)
let unselectedImage = UIImage(named: unselected)?.withRenderingMode(.alwaysOriginal)
self.init(title: title, image: unselectedImage, selectedImage: selectedImage)
}
}
然后在您的视图控制器中 viewDidLoad
...
tabBarItem = UITabBarItem(title: "My title",
unselected: "unselectedIconName",
selected: "selectedIconName")
我正在尝试添加一个多色图标,当我按照标签栏添加图标时,它显示单一颜色蓝色,图标的实际颜色不可见?
如何在标签栏中添加彩色图标?
这是因为在标签栏中,所有图像都是在渲染模式设置为 template
的情况下显示的,您可以在加载图像时覆盖此强制渲染模式的行为:
let yourImage = UIImage(named: "your_image")?.withRenderingMode(.alwaysOriginal)
然后将您的图像用作标签栏图标。
最好用这样的代码来做:
var aViewController: UIViewController = UIViewController()
//这个语句就是你需要的
var myTabBarItem: UITabBarItem = UITabBarItem(title: nil, image: UIImage(named: "YOUR_IMAGE_NAME")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal), selectedImage: UIImage(named: "YOUR_IMAGE_NAME"))
aViewController.tabBarItem = myTabBarItem
在 x 代码 select 的资产文件夹中,您的图像和属性检查器中 Render As 的值更改为 "Original Image" 而不是 "Default".
不要在情节提要中这样做。试试这个:
extension UITabBarItem {
convenience init(title: String, unselected: String, selected: String) {
let selectedImage = UIImage(named: selected)?.withRenderingMode(.alwaysOriginal)
let unselectedImage = UIImage(named: unselected)?.withRenderingMode(.alwaysOriginal)
self.init(title: title, image: unselectedImage, selectedImage: selectedImage)
}
}
然后在您的视图控制器中 viewDidLoad
...
tabBarItem = UITabBarItem(title: "My title",
unselected: "unselectedIconName",
selected: "selectedIconName")