您可以在您的UIButton
上實施UIPanGestureRecognizer
。
無論您創建按鈕(viewDidLoad
如果使用網點):
let pan = UIPanGestureRecognizer(target: self, action: "panButton:")
button.addGestureRecognizer(pan)
這將創建一個新的泛手勢識別,並將其添加到按鈕。現在,你需要實現平移的動作。首先,您需要存儲按鈕的中心,以便在完成平移時可以將其重置。將其作爲視圖控制器屬性添加:
var buttonCenter = CGPointZero
然後執行平移操作。請注意,您可以使用手勢識別器狀態來確定平底鍋何時開始和結束:
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
}
}
您是否使用自動佈局?如果是這樣,請發佈您的約束。 – tktsubota