[iOS] UIImageView Touchevent 만들기

PM077·2023년 1월 8일
0

iOS

목록 보기
12/21

UIImageView는 UIButton과 같이 addTarget을 하여서 클릭을 자체적으로 감지를 할 수 없다. 그렇기에 TapGesture를 활용해서 뷰가 클릭된 것을 감지해야한다.

과정

  • 눌려질 View 생성
  • 클릭 시 취할 행동을 저장하는 곳 생성
  • tapgesture 생성

코드

눌려질 View 생성

    let photoButton = UIImageView().then{
        $0.image = UIImage(named: "photoButton")?.withRenderingMode(.alwaysOriginal)
    }
  • UiImageView를 간단히 만들어 준다

클릭 시 취할 행동을 저장하는 곳 생성

    @objc func didClickPhoto(sender: UITapGestureRecognizer) {
        print("didClickPhoto")
    }
  • UIImageView를 클릭하면 "didClickPhoto"를 출력하게끔 만들었다.

tapgesture 생성

        let PhotoBtn = UITapGestureRecognizer(target: self, action: #selector(didClickPhoto))
        photoButton.isUserInteractionEnabled = true
        photoButton.addGestureRecognizer(PhotoBtn)
  • PhotoBtn안에 didClickCategory를 실행 시키는 Recognizer를 넣어둔다
  • ImageView는 일반 뷰들과 달리 isUserInteractionEnabled를 true를 해줘야만 유저 반응에 작동한다
  • photoButton에 gesture를 추가해준다

이렇게 되면
1. 유저가 UIImageView 클릭
2. 클릭 gesture에 반응해서 PhotoBtn를 실행시킴
3. 이는 didClickPhoto 실행시키게 코딩 되어있음
4. didClickPhoto "didClickPhoto"를 print하게끔 코딩되어있음
5. didClickPhoto 출력

profile
PM/PO

0개의 댓글