3
나는 아래와 같이 UIImageView
에 레이블이 있습니다.동시에 핀치, 끌기 및 팬
라벨은 드래그, 팬 수와 핀치 수 있습니다. 그러나 한 번에 하나의 제스처 만 할 수 있습니다. 예를 들어 Snapchat 및 Whatsapp의 이미지에있는 텍스트 에서처럼 꼬집는 동안 레이블을 드래그하려고합니다. 내 기능은 다음과 같습니다. 검색 할 때 맞춤 제스처 인식기를 만들어야한다고 생각하지만 어떻게해야할지 모르겠다. 사용자 지정 인식기를 만들지 않고도이를 수행 할 수있는 방법이 있습니까? Snapchat-like text on image
func handlePan(recognizer: UIPanGestureRecognizer) {
var translation = recognizer.translation(in: allview)
translation.x = max(translation.x, imageview.frame.minX - mylabel.frame.minX)
translation.x = min(translation.x, imageview.frame.maxX - mylabel.frame.maxX)
translation.y = max(translation.y, imageview.frame.minY - mylabel.frame.minY)
translation.y = min(translation.y, imageview.frame.maxY - mylabel.frame.maxY)
if let view = recognizer.view {
view.center = CGPoint(x:view.center.x + translation.x,
y:view.center.y + translation.y)
}
recognizer.setTranslation(CGPoint.zero , in: view)
}
func handlePinch(recognizer: UIPinchGestureRecognizer) {
if let view = recognizer.view as? UILabel {
let pinchScale: CGFloat = recognizer.scale
view.transform = view.transform.scaledBy(x: pinchScale, y: pinchScale)
recognizer.scale = 1.0
}
}
func handleRotate(recognizer: UIRotationGestureRecognizer) {
if let view = recognizer.view as? UILabel {
let rotation: CGFloat = recognizer.rotation
view.transform = view.transform.rotated(by: rotation)
recognizer.rotation = 0.0
}
}
한 번에 두 개 이상의 제스처를 시도하는 것은 좋지 않은 디자인입니다. 일반 사용자가 기대하는 바를 고려하면 혼란스러워 보입니다. – dfd
snapchat 또는 whatsapp (이미지의 텍스트) 에서처럼하고 싶습니다. –