Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 快速UIPanGesture_Ios_Swift - Fatal编程技术网

Ios 快速UIPanGesture

Ios 快速UIPanGesture,ios,swift,Ios,Swift,我正在看这段视频中关于如何做出类似打火的刷卡手势的教程。我还使用了这个堆栈溢出帖子 我遇到的问题是,我的整个屏幕(所有的按钮、标签、视图)开始作为一个整体移动,并且在使用UIPanGesture时永远不会回到中心。我的目标是只移动UIView(白框)。这是我的代码(下面) 现在,我的目标只是移动UIView(白色框),并在用户放开视图时使其返回中心。有人知道如何解决这个问题吗?谢谢你的帮助 移动卡中心时,视图中心也会移动 只需更改这一行: func createPanGestureRecogni

我正在看这段视频中关于如何做出类似打火的刷卡手势的教程。我还使用了这个堆栈溢出帖子

我遇到的问题是,我的整个屏幕(所有的按钮、标签、视图)开始作为一个整体移动,并且在使用UIPanGesture时永远不会回到中心。我的目标是只移动UIView(白框)。这是我的代码(下面)


现在,我的目标只是移动UIView(白色框),并在用户放开视图时使其返回中心。有人知道如何解决这个问题吗?谢谢你的帮助

移动卡中心时,视图中心也会移动

只需更改这一行:

func createPanGestureRecognizer(_: UIView) {
    let panGesture = UIPanGestureRecognizer(target: self, action:(#selector(self.panCard(_:))))
    gameCard.addGestureRecognizer(panGesture)// Use gameCard to add gesture not parent view
}

你的问题是:

let card=sender.view


不要使用发送方与您的手势回调方法,这意味着您的手势附加到哪个视图。在这种情况下,这是你的自我观。因此,明确使用首选视图,有一个属性来引用您的白框就足够了。

谢谢您的回复。在函数中执行let card=view和card.center=view.center时,它给了我一个错误,并告诉我执行card!。center=view.center,所以我用了它,现在什么都不动了。我想这应该在if语句中,对吗?我把它放在if语句中,现在当你放开它时,它会再次回到中心,所有其他项目,UILabel,UIButton和View都会同时移动(这仍然是个问题)(仅尝试移动UIView)是的,请尝试该代码,让我解释一下:无论何时移动卡中心,视图中心也会移动,因此,在平移手势的状态为Endedah后,视图的中心也与卡片的中心相同。这是有意义的,现在,当你放开时,它会返回到中心。唯一的问题是,所有东西都一起移动(UIbutton、label和view,尽管我只调用了view Only),平移手势仍然非常敏感,只要轻轻一碰,它就会离开画面(尽管现在松开时它会回到中间)。你只想移动游戏卡吗?
func createPanGestureRecognizer(_: UIView) {
    let panGesture = UIPanGestureRecognizer(target: self, action:(#selector(self.panCard(_:))))
    gameCard.addGestureRecognizer(panGesture)// Use gameCard to add gesture not parent view
}