我有一个自定义的Tab Bar类。如下所示。在main.storyboard中,我将标签栏的类设置为CustomTabBar:
class CustomTabBar: UITabBar {
override var items: [UITabBarItem]? //[This line returns an error]
// items?[0].selectedImage = UIImage(named: "MyImage.png")
override func sizeThatFits(_ size: CGSize) -> CGSize {
var size = super.sizeThatFits(size)
size.height = 49.0
return size
}
}
“覆盖var项目”行返回错误“无法使用存储的属性“ items”覆盖”。我想访问此属性,以便可以更改与第一个选项卡栏项目关联的内容。我希望能够使用该行下方当前被注释掉的行。我怎么会得到这个错误?另外,还有另一种方法可以完成我想做的事情吗?
答案 0 :(得分:1)
无法使用存储的属性“ items”覆盖。
我不确定您为什么要这样做。如果要设置项目,则可以使用方法setItems(_:animated:)
,当需要获取选定的项目时,可以使用名为selectedItem
的属性。
您还可以执行其他操作,例如:
items?.append()
items?[0].selectedImage = UIImage(named: "MyImage.png")
的商品的属性对于您的情况,您可以说在自定义TabBarController的viewDidLoad
中更改此项属性
override func viewDidLoad() {
super.viewDidLoad()
tabBar.items?[0].selectedImage = UIImage(named: "MyImage.png")
}