我有一个分机:
extension UILabel {
func animateHidden(flag: Bool) {
self.hidden = flag
}
}
我需要为UIImageView
人制作同样的代码,但我不想复制整个代码.可以为多个类进行扩展吗?
谢谢
我有一个分机:
extension UILabel {
func animateHidden(flag: Bool) {
self.hidden = flag
}
}
我需要为UIImageView
人制作同样的代码,但我不想复制整个代码.可以为多个类进行扩展吗?
谢谢
你可以制定一个协议并扩展它.
比如:
protocol Animations {
func animateHidden(flag: Bool)
}
extension Animations {
func animateHidden(flag: Bool) {
// some code
}
}
extension UILabel: Animations {}
extension UIImageView: Animations {}
您的方法将可用于扩展类:
let l = UILabel()
l.animateHidden(false)
let i = UIImageView()
i.animateHidden(false)
在一条 comments 中,你问:"在这种情况下,如何在animateHidden
函数中为UILabel
和UIImageView
调用self
?".可以通过约束扩展来实现这一点.
以where
条款为例:
extension Animations where Self: UIView {
func animateHidden(flag: Bool) {
self.hidden = flag
}
}
Thanks to @Knight0fDragon for his excellent comment about the 100 clause.