동적으로 생성 된 레이블에 제스처를 추가하려고하지만이 코드는 작동하지 않지만 작동하지 않습니다. 무엇이 잘못 되었나요? 사전에동적으로 추가 된 UILabel에 제스처를 추가 할 수 없습니다.
let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 21))
label.center = CGPoint(x: 160, y: 285)
label.textAlignment = .center
label.text = field.text
label.isZoomEnabled = true;
label.minFontSize = 10;
label.maxFontSize = 80;
label.adjustsFontSizeToFitWidth = true;
label.setNeedsLayout()
label.isUserInteractionEnabled = true
let panRecognizer = UITapGestureRecognizer(target: self, action:Selector(("handlePan:")))
let rotateRecognizer = UITapGestureRecognizer(target: self, action:Selector(("handleRotate:")))
panRecognizer.delegate = self
rotateRecognizer.delegate = self
label.addGestureRecognizer(panRecognizer)
label.addGestureRecognizer(rotateRecognizer)
self.view.addSubview(label);
self.imagePicked.addSubview(label)
@IBAction func handlePan(recognizer:UIPanGestureRecognizer) {
let translation = recognizer.translation(in: self.view)
if let view = recognizer.view {
view.center = CGPoint(x:view.center.x + translation.x,
y:view.center.y + translation.y)
}
recognizer.setTranslation(CGPoint(x:0,y:0), in: self.view)
}
@IBAction func handleRotate(recognizer : UIRotationGestureRecognizer) {
if let view = recognizer.view {
view.transform = view.transform.rotated(by: recognizer.rotation)
recognizer.rotation = 0
}
}
감사합니다.
설명해 주시겠습니까? – 3gth
UITapGestureRecognizer를 만들었을 때 메서드가 UIPanGestureRecognizer 및 UIRotationGestureRecognizer를 사용하고 있었기 때문에 효과가있었습니다. 또한 메서드가 올바르게 호출되고 IBActions가 메서드로 변경되도록 선택기를 변경했습니다. – Aakash