アニメーションをUIImageViewに適用すると、.allowUserInteractionをオプションとして含めるにもかかわらず、アニメーション中の相互作用が防止されます。ビューはアニメーションの終わり近くでしか反応しないようです。私はこれを無駄に研究する無数の時間を費やしました。他の投稿はアルファ値の変更を提案していますが、これはボタンにのみ適用されるようです。 (UIImageViewはUIPanGestureRecognizerを介して@IBActionに接続されています)。.AllowUserInteractionはUIImageViewでは機能しません。
@IBAction func panAction(recognizer: UIPanGestureRecognizer) {
let translation = recognizer.translationInView(self.view)
recognizer.view!.center = CGPoint(x: recognizer.view!.center.x + translation.x, y: recognizer.view!.center.y + translation.y)
recognizer.setTranslation(CGPointZero, inView: self.view)
if recognizer.state == UIGestureRecognizerState.Ended {
UIView.animateWithDuration(3, delay: 0, options: [UIViewAnimationOptions.CurveEaseOut, UIViewAnimationOptions.AllowUserInteraction], animations: {
recognizer.view?.center.y += 300
}, completion: nil)
}
}
ImageViewはユーザーの操作に影響しません。これは、押す/タップできるオブジェクト(Button、Cell、CollectionViewなど)に設定できます。 – JAck