这是我的第一个问题!我只是想知道,在Swift中(特别是Swift 2,虽然这可能不言而喻!),如何创建一个用户可以拖动的按钮.因此,例如,如果它是UIButton,用户可以点击并按住它,当他们移动手指时,UIButton随之移动,当它们释放时,它保持在用户离开它的位置.可能会有一个对齐系统,但现在这并不重要.
我搜索过StackOverflow并发现了一些非常有趣的东西,但是对于Objective-C来说都是如此,虽然Swift在某些方面非常相似,但我无法弄清楚如何在Swift中实现它.
对于我正在开展的项目,我们将非常感激!
非常感谢你!
tkt*_*ota 11
你可以实现UIPanGestureRecognizer你的UIButton.
无论您在哪里创建按钮(viewDidLoad如果使用插座):
let pan = UIPanGestureRecognizer(target: self, action: "panButton:")
button.addGestureRecognizer(pan)
Run Code Online (Sandbox Code Playgroud)
这将创建一个新的平移手势识别器并将其添加到按钮.现在,您将要实现pan的操作.首先,您需要存储按钮的中心,以便在完成平移后重置它.将其添加为视图控制器属性:
var buttonCenter = CGPointZero
Run Code Online (Sandbox Code Playgroud)
然后执行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
}
}
Run Code Online (Sandbox Code Playgroud)
基本上,您想要实现一个触摸手势识别器,并在您点击/移动所述按钮时将按钮的中心设置为按下的中心。
以下是您想要执行此操作的方法:https ://stackoverflow.com/a/31487087/5700898
另外,非常酷的主意!
| 归档时间: |
|
| 查看次数: |
4138 次 |
| 最近记录: |