可以在Swift中拖拽UIButton / Elements?

这是我的第一个问题! 我只是想知道,在Swift中(特别是Swift 2,虽然这可能不言而喻!),如何创建一个用户可以拖动的按钮。 因此,例如,如果它是UIButton,则用户可以点击并按住它,当他们移动他们的手指时,UIButton随之移动,当他们释放它时,它保持在用户离开它的位置。 可能会有一个对齐系统,但现在这并不重要。

我搜索过StackOverflow并发现了一些非常有趣的东西,但是对于Objective-C而言,虽然Swift在某些方面非常相似,但我无法弄清楚如何在Swift中实现它。

对于我正在开展的项目,我们将非常感激!

非常感谢你!

您可以在UIButton上实现UIPanGestureRecognizer

无论您在何处创建按钮(如果使用sockets,则为viewDidLoad ):

 let pan = UIPanGestureRecognizer(target: self, action: "panButton:") button.addGestureRecognizer(pan) 

这将创建一个新的平移手势识别器并将其添加到按钮。 现在,您将要实现pan的操作。 首先,您需要存储按钮的中心,以便在完成平移后重置它。 将其添加为视图控制器属性:

 var buttonCenter = CGPointZero 

然后执行pan操作。 请注意,您可以使用手势识别器状态来确定平移的开始和结束时间:

 func panButton(pan: UIPanGestureRecognizer) { if pan.state == .Began { buttonCenter = button.center // store old button center } else if pan.state == .Ended || pan.state == .Failed || pan.state == .Cancelled { button.center = buttonCenter // restore button center } else { let location = pan.locationInView(view) // get pan location button.center = location // set button to where finger is } } 

基本上,您需要实现触摸手势识别器,并在点击/移动所述按钮时将按钮的中心设置为按下的中心。

以下是您希望如何做到这一点: https : //stackoverflow.com/a/31487087/5700898

还有,真的很酷!