我想观察一个属性didSet
,该属性仅在更新的iOS版本上可用。我尝试过:
class CustomNavigationBar: UINavigationBar {
@available(iOS 11.0, *)
override open var prefersLargeTitles: Bool {
didSet {
print(prefersLargeTitles)
}
}
}
但是我得到了
<未知>:0:错误:“ prefersLargeTitles”仅在iOS 11.0或更高版本上可用
Xcode版本9.4(9F1027a)
斯威夫特4.1
iOS部署目标9.0
iPhone SE 11.4模拟器
答案 0 :(得分:0)
我不确定didSet
与@available
不兼容的原因,但是我发现get
+ set
的变通方法没有错误:
@available(iOS 11.0, *)
override open var prefersLargeTitles: Bool {
get {
return super.prefersLargeTitles
}
set {
super.prefersLargeTitles = newValue
// `didSet` logic here:
print(prefersLargeTitles)
}
}