Swift UITapGestureRecognizer
2022. 5. 21. 23:40ㆍSwift
반응형
Swift UITapGestureRecognizer
UITapGestureRecognizer
- 단일 또는 다중 탭을 해석하는 개별 제스처 인식기
func handleTap(sender: UITapGestureRecognizer) {
if sender.state == .ended {
// handling code
}
}
https://devmjun.github.io/archive/CreatSubway-ver1
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let frameSize = view.bounds.size
scrollView = UIScrollView(frame: CGRect(origin: CGPoint.zero, size: frameSize))
let image = UIImage(named: "seoul_subway.png")
imageView = UIImageView(image: image)
scrollView.contentSize = imageView.bounds.size
scrollView.addSubview(imageView)
view.addSubview(scrollView)
// 텝 횟수에 따라서 동작 결정
let doubleTap = UITapGestureRecognizer(target: self, action: #selector(self.tapToZoom))
doubleTap.numberOfTapsRequired = 2
doubleTap.numberOfTouchesRequired = 1
// 더블텝 제스쳐를 scrllView 상위로 올렷다, 컨테이너 밖으로 벗어나면 터치가 안됨 ㅠㅠ
scrollView.addGestureRecognizer(doubleTap)
// 더블탭 기능, delegate 사용해서, addTaget 으로 사용함, 엄밀하게 더블텝을 위한것보다는, 델리게이트를 이용해서, 불려 오는 함수에 조건을 넣어서 기능을 구현했다.
@objc func tapToZoom(_ gestureRecognizer: UIGestureRecognizer) {
print("줌..")
scrollView.minimumZoomScale = 1.0
scrollView.maximumZoomScale = 3.0
scrollView.delegate = self
// 더블탭 간단 하게 구현
if scrollView.zoomScale == CGFloat(1) {
scrollView.setZoomScale(3, animated: true)
}else {
scrollView.setZoomScale(1, animated: true)
}
}
반응형
'Swift' 카테고리의 다른 글
Swift Kakao API 연결하기 (0) | 2022.06.02 |
---|---|
Swift MVVM 알아보기 (0) | 2022.05.29 |
Swift Github API 연결해보기 (0) | 2022.05.19 |
Swift 인스타그램 앱 클론 코딩(6) (0) | 2022.05.08 |
Swift 인스타그램 앱 클론 코딩(5) (0) | 2022.05.07 |