点击切换 UIViews Class

Toggle UIViews Class on Tap

我在 View Controller 中有 5 个不同的 UIViews,我想通过更改其边框颜色仅突出显示最后一个被点击的。

我做了一个Custom Highlighting Class,在设计上封装了想要的效果,给每个UIView一个UITapGestureRecognizer和它的#selector(toggleFunction)。这5个UIViews已经有了分配给他们的 class,所以基本上我需要将 Original Class 更改为 Custom Class,或者根据需要将其 on/off。

我的问题是,当我在 5 UIViews 之间点击时,如何打开和关闭此自定义 Class?

你可以试试

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 {

      [=11=].addBorder([=11=] == currentView)
   }

}

假设你有

var allViews = [UIView]()