我有了這個函數來處理視圖的拖動:+UIPanGestureRecogniser工作不正常
func handlePan(recognizer:UIPanGestureRecognizer) {
let translation = recognizer.translationInView(self.view)
let newCenter = CGPointMake(self.view.bounds.size.width/2,
recognizer.view!.center.y + translation.y)
print("the translation x:\(translation.x) & y:\(newCenter.y)")
if (newCenter.y >= 397 && newCenter.y <= 632) {
recognizer.view!.center = newCenter
recognizer.setTranslation(CGPointZero, inView: self.view)
}
}
的立場是正確的。 但是,當我拖動時需要移動的視圖經常會阻止,所以我需要停下來並開始再次拖動它。
我該如何解決這個問題?
編輯:我的代碼看起來現在這個樣子,但我仍然有問題:
func handlePan(recognizer:UIPanGestureRecognizer) {
let translation = recognizer.translationInView(self.view)
switch recognizer.state {
case .Ended:fallthrough
case .Changed:
let newCenter = CGPointMake(self.view.bounds.size.width/2,
recognizer.view!.center.y + translation.y)
print("the translation x:\(translation.x) & y:\(newCenter.y)")
if (newCenter.y >= 397 && newCenter.y <= 632) {
recognizer.view!.center = newCenter
recognizer.setTranslation(CGPointZero, inView: self.view)}
default : break }
}
確定姿勢的狀態作爲結束,開始。我會幫你的。 –
'recognizer.state',然後嘗試添加代碼@'.Changed' – Korpel
您可以更具體嗎?抱歉。 @Korpel – dpstart