我想要一个默认属性UIImageView
,这将是isFlipped
。我可以通过子类化来做到这一点UIImageView
并添加一项属性isFlipped
。
但我想使用此协议和扩展,但一段时间后它崩溃了。下面是我的代码。我怎样才能正确使用它?谢谢
import Foundation
import UIKit
protocol FlipImage {
var isFlipped: Bool { get set }
}
extension UIImageView:FlipImage{
var isFlipped: Bool {
get {
return self.isFlipped
}
set {
self.isFlipped = newValue
}
}
}
正如 Martin R 所说,您不能通过类扩展向类添加存储的属性。但是您可以通过扩展使用 Objective C 关联对象来完成此操作
private var key: Void?
extension UIImageView {
public var isFlipped: Bool? {
get {
return objc_getAssociatedObject(self, &key) as? Bool
}
set {
objc_setAssociatedObject(self,
&key, newValue,
.OBJC_ASSOCIATION_RETAIN_NONATOMIC)
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)