2017-12-13 6 views
0

내가 눌렀을 때 uiview의 테두리 색을 변경하고 해제 후 일반 테두리 색으로 되돌리고 싶습니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 아래 그림과 같은UIview의 테두리 색상을 변경하는 방법은 무엇입니까?

뭔가 : enter image description here

+3

UIButton을 올바르게 사용할 수 있습니까? –

+0

UIview로 할 수 있습니까? – 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를 사용할 수 있습니다.

override func viewDidLoad() { 
    super.viewDidLoad() 

    let tap = UILongPressGestureRecognizer(target: self, action: #selector(self.handleTap(_:))) 
    customeview.addGestureRecognizer(tap) 

} 

@objc func handleTap(_ sender: UILongPressGestureRecognizer) { 
    print("Hello World") 

    if sender.state == .began 
    { 
     customeview.layer.borderColor = UIColor.yellow.cgColor 
     customeview.layer.borderWidth = 3 
    } 
    else if sender.state == .ended 
    { 
      customeview.layer.borderColor = UIColor.black.cgColor 
      customeview.layer.borderWidth = 3 
    } 
} 
+0

을 도와 드릴 수있어서 기쁩니다. –