Переключить класс UIViews на кран - PullRequest
0 голосов
/ 22 октября 2018

У меня есть 5 различных UIViews в View Controller, и я хочу выделить только последний из них, изменив цвет его границы.

Я сделал Custom Highlighting Class, который инкапсулирует желаемый эффект с точки зрения дизайна, и дал каждому UIView UITapGestureRecognizer с его #selector(toggleFunction). Этим 5 UIViews уже присвоен класс, поэтомув основном мне нужно изменить Original Class на Custom Class или просто включить / выключить его при необходимости.

Мой вопрос заключается в том, как включить или отключить этот пользовательский класс при нажатии между 5UIViews

1 Ответ

0 голосов
/ 22 октября 2018

Вы можете попробовать

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]()
...