«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

[위미르 개발팀] Android, iOS , Web 제작

[Swift3]클릭리스너 등록하기 본문

개발자료/iOS

[Swift3]클릭리스너 등록하기

위미르개발팀 2017. 11. 27. 16:34

Swfit3에서 뷰에 클릭 리스너를 설정할때는 버튼과 일반 뷰 두가지경우가 있고 설정 방법이 다릅니다.


먼저 버튼의 클릭 리스너 설정 방법입니다.


let button : UIButton = UIButton(frame : CGRect(x: 0 , y: 0, width: 100, height: 30))

button.setTitle = ("버튼", for: UIControlState.nermal)

button.addTarget(self, action: #selector( 리스너 함수 ), for: UIControl.touchUpinside)


저는 button 이라는 UIButton 객체를 임의로 생성하여 리스너를 설정하였습니다.


버튼은 바로 addTarget이라는 메서드를 사용하여 리스너를 설정할수 있고, for에는 어떠한 행동을 인식하는것인지 설정하는것인데 일반적인 누르는 행위에 대해서는 UIControl.touchUpinside를 넣어주시면 됩니다.


클릭 했을때에 selector 안에 넣어준 리스너 함수가 실행됩니다.


만약 해당 클래스명이 MyView 이고 함수명이 func mylistener() 와 같은 식으로 되어 있다면 


button.addTarget(self, action: #selector( MyView.mylistener ), for: UIControl.touchUpinside)


와 같이 작성 하시면 됩니다.



다음은 일반뷰의 경우 입니다.


let myView : UIView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))

let gesture = UITapGuestureRecognizer(target: self, action: #selector( 리스너 함수 ))

myView.addGestureRecognizer(tapGesture)

myView.isUserInteractionEnabled = true


버튼의 경우와 다른점은 UITapGuestureRecognizer를 사용한다는 점 입니다.


일반 뷰에서는 버튼과는 다르게 addTarget이라는 메서드가 존재 하지 않기 때문에 뷰에 제스처를 인식하도록 합니다.


주의할점은 isUserInteractionEnabled = true를 반드시 확인 하셔야 합니다.


일반뷰에는 UIView, UIImageView 등 UI를 구성하는 모든뷰가 해당됩니다.




희 위미르에서는 모바일 어플리케이션(Android/iOS), Web 개발을 해드리고 있습니다.


문의 전화 : 070-4177-3962



Comments