我在UIViews
中有5个不同的View Controller
,并且我想通过更改其边框颜色仅突出显示被点击的最后一个。
我制作了一个Custom Highlighting Class
,它封装了设计方面的预期效果,并给每个UIView一个UITapGestureRecognizer
及其#selector(toggleFunction)
。这5个UIViews
已经有一个类分配给他们,因此基本上我需要将Original Class
更改为Custom Class
,或者根据需要将其打开/关闭。
我的问题是,当我在5个UIViews
之间点击时,如何打开和关闭此自定义类?
答案 0 :(得分:1)
您可以尝试
extension UIView {
func addBorder(_ add:Bool) {
self.layer.borderColor = add ? UIColor.red.cgColor : UIColor.green.cgColor
self.layer.borderWidth = add ? 5 : 0
}
}
@objc func tapped(_ v:UITapGestureRecognizer) {
let currentView = v.view!
allViews.forEach {
$0.addBorder($0 == currentView)
}
}
假设您有
var allViews = [UIView]()