Meine Ansicht Hierarchie folgt:UIPanGestureRecognizer wird nicht gestartet. Swift 3
Ansicht
- Ansicht Für Benutzerhandbuch Img + Emoji (A)
- Ansicht mit UI-Elemente. (B)
In viewDidLoad schaffe ich UIImageViews für Emojis, fügen sie dem A und fügen Geste Erkenner (pan, klemme, drehen):
let emojiView = UIImageView(image: emoji)
emojiView.tag = n
emojiView.frame = CGRect(x: 153, y: 299, width: 70, height: 70)
emojiView.isUserInteractionEnabled = true
let pan = UIPanGestureRecognizer(target: self, action: #selector(self.handlePan(recognizer:)))
pan.delegate = self
emojiView.addGestureRecognizer(pan)
let pinch = UIPinchGestureRecognizer(target: self, action: #selector(self.handlePinch(recognizer:)))
pinch.delegate = self
emojiView.addGestureRecognizer(pinch)
let rotate = UIRotationGestureRecognizer(target: self, action: #selector(self.handleRotate(recognizer:)))
rotate.delegate = self
emojiView.addGestureRecognizer(rotate)
Später erkläre ich IBActions :
@IBAction func handlePan(recognizer: UIPanGestureRecognizer) {
let translation = recognizer.translation(in: self.viewForImgAndEmoji)
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: self.viewForImgAndEmoji)
}
@IBAction func handlePinch(recognizer: UIPinchGestureRecognizer) {
let pinchPoint = recognizer.location(in: viewForImgAndEmoji)
let ourEmojiView = viewForImgAndEmoji.hitTest(pinchPoint, with: nil)
ourEmojiView!.transform = ourEmojiView!.transform.scaledBy(x: recognizer.scale, y: recognizer.scale)
recognizer.scale = 1
}
@IBAction func handleRotate(recognizer: UIRotationGestureRecognizer){
let rotatePoint = recognizer.location(in: viewForImgAndEmoji)
let ourEmojiView = viewForImgAndEmoji.hitTest(rotatePoint, with: nil)
ourEmojiView!.transform = ourEmojiView!.transform.rotated(by: recognizer.rotation)
recognizer.rotation = 0
}
Problem: die Pfanne funktioniert nicht. Drehen und drücken funktioniert. Aber schwenken ist nicht. (kann nicht Interaktion mit dem Benutzer zum Umlegen Ansicht deaktivieren, da es Tasten hat)
Ist es möglich, ein kleines Demo-Projekt mit dem Code zu bekommen? In solchen Situationen ist es einfacher, mit einem tatsächlichen Projekt zu debuggen, das das Szenario repliziert, da (abgesehen von etwas Einfachem, das übersehen wurde) eine andere Ansicht Ihre Schwenkbewegung verschlucken könnte. Oder Sie können versuchen, das Szenario mit einer einzigen eigenen Ansicht zu replizieren (anstelle mehrerer überlagerter Ansichten) und festzustellen, ob das Problem weiterhin auftritt ... – Fahim
https://github.com/flostik2008/Skirt Datei EmojiVC.swift . Vielen Dank. – Evgeny
Werfen Sie einen Blick jetzt. Ich melde mich bei dir, sobald ich entdecke, was vor sich geht. – Fahim