2017-12-13 32 views
0

私はそれが押されているときにuiviewの境界線の色を変更し、リリース後に通常の境界線の色に戻したいと思います。これを行うベストプラクティスは何ですか?下の画像のようUIviewの境界線の色を変更する方法は?

何か: enter image description here

+3

UIButtonは正しく使用できますか? –

+0

UIビューとして行うことはできますか? – ErikLm

+2

はいそれは可能です –

答えて

4

UITapGestureRecognizerを使用しないでください。

override func viewDidLoad() { 
    super.viewDidLoad() 

    let view = UIView.init(frame: CGRect.init(x: 30, y: 200, width: 100, height: 40)) 
    self.view.addSubview(view) 
    view.layer.borderColor = UIColor.black.cgColor 
    view.layer.borderWidth = 3 
    let tapForView = UILongPressGestureRecognizer(target: self, action: #selector(self.toChangeColor(recognizer:))) 
    tapForView.minimumPressDuration = 0.01 
    view.isUserInteractionEnabled = true 
    view.addGestureRecognizer(tapForView) 
} 

@objc func toChangeColor(recognizer:UILongPressGestureRecognizer) 
{ 
    // Apply logic for changing background color. 
    let view = recognizer.view 
    if recognizer.state == .began { 
     view?.layer.borderColor = UIColor.orange.cgColor 
     print("view began") 
    } 
    else if recognizer.state == .ended { 
     view?.layer.borderColor = UIColor.black.cgColor 
     print("view ended") 

    } 

} 

これは完璧に動作します:あなたはUILongPressGestureRecognizer

コードを使用することができます。

+0

これは完璧に動作します、ありがとうございます! – ErikLm

+0

タッチエンドの –

0
let tapForView = UITapGestureRecognizer(target: self, action: #selector(self.ToChangeColor(recognizer:))) 
         tapForView.numberOfTapsRequired = 1 
         view.isUserInteractionEnabled = true 
         view.addGestureRecognizer(tapForView) 


@objc func ToChangeColor(recognizer:UITapGestureRecognizer) 
{ 
// Apply logic for changing background color 
} 
0

あなたはのviewDidLoadでジェスチャーを追加し、handleTap機能で使用すると、境界線の色を変更することができUIView

の境界線の色を変更するためにUILongPressGestureRecognizerを使用することができます。

+0

をお手伝いします –

関連する問題