제스처도 StoryBoard를 사용하여 구현해 봅니다.

3233 단어 StoryboardiOSGesture

애초에 제스처란?



탭이나 스와이프 등의 스마트폰 특유의 조작 이벤트입니다.


종류
설명


UITapGestureRecognizer


UIPinchGestureRecognizer
핀치 인 아웃 주로 확대 축소

UIPanGestureRecognizer
드래그

UISwipeGestureRecognizer
페이지 넘김이나 스크롤 등의 스 와이프

UIRotationGestureRecognizer
손가락 2개로 회전시키는 느낌

UILongPressGestureRecognizer
길게 누르기


UIImageView에 탭 제스처를 붙이는 경우를 예로 설명합니다.



모두 소스 코드로 쓰면 아래와 같은 이미지가 됩니다.


import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var imageView: UIImageView!
    override func viewDidLoad() {
        super.viewDidLoad()
        configureLogoImageView()
    }

    func configureLogoImageView() {

        imageView.userInteractionEnabled = true
        imageView.addGestureRecognizer(
            UITapGestureRecognizer(target: self, action: "tapGesture:"))
    }

    //MARK:- Gesture Action Method
    func tapGesture(recognizer: UITapGestureRecognizer) {
        print(__FUNCTION__)
    }
}

예를 들어 UImageView의 탭 제스처도
UIButton 액션처럼 구현할 수 없습니까?
라는 것으로, 본제에 들어갑니다.

StoryBoard를 이용하여 UIView에 제스처를 추가해 봅니다. .



절차



단지 3 단계입니다.
  • StoryBoard에 UIImageView를 배치하고 "Interaction의 User Interaction Enabled"를 체크한다.
  • Object에서 "Tap Gesture Recoginizer"를 검색하고 UIImageView 위에 드래그 앤 드롭합니다.
  • "Tap Gesture Recoginizer"에서 소스 코드로 세구에를 걸어 액션을 정의한다.

  • 그럼, 순서대로 구현하고 있습니다.

    1. StoryBoard에 UIImageView를 배치하고 "Interaction의 User Interaction Enabled"를 체크한다.



    이것을 잊어버리면 이벤트를 데리러 가지 않습니다.
    핀치 등 2개 손가락 이상 화면에 터치가 필요한 경우는 「Multiple Touch」를 체크하는 것.



    2. Object에서 "Tap Gesture Recoginizer"를 검색하고 UIImageView 위에 드래그 앤 드롭합니다.



    제스처를 적용하려는 대상 위에 놓습니다.



    배경에 제스처를 붙이고 싶은 경우는, 기초가 되어 있는 UIView에 드래그&드롭 하면 실현 가능합니다.
    예를 들어, 배경을 탭하면 키보드를 지우는 등.

    3. "Tap Gesture Recoginizer"에서 소스 코드로 세구에를 걸어 액션을 정의한다.





    주의할 점은 Connection을 "Action"으로 하는 것!

    StoryBoard를 이용하면 소스 코드는 아래와 같은 이미지가 됩니다.



    오, 깔끔하게!
    import UIKit
    
    class ViewController: UIViewController {
    
        @IBOutlet weak var imageView: UIImageView!
        override func viewDidLoad() {
            super.viewDidLoad()
        }
    
        //MARK:- Action Method
        @IBAction func tappedImageView(sender: UITapGestureRecognizer) {
            print(__FUNCTION__)
        }
    }
    
    

    요약



    이번에는 탭 제스처를 예로 들었지만,
    다른 제스처도 마찬가지로 구현할 수 있습니다.
    누군가의 참고가 되면 다행입니다.

    틀린 것이 있으면
    교수해 주시면 다행입니다.

    좋은 웹페이지 즐겨찾기