我調整了UIPanGestureRecognizer以使用下拉來消除視圖。我是這樣做的,所以現在可以將視圖拖動到y軸上,如果y的變化大於100,則視圖將被忽略。將UIView設置爲從左上角開始(0,0)
override func viewDidLoad() {
super.viewDidLoad()
let myPanGestureRecognizer = UIPanGestureRecognizer(target: self, action: "myPanAction:")
self.player.view.addGestureRecognizer(myPanGestureRecognizer)
}
func myPanAction(recognizer: UIPanGestureRecognizer) {
let translation = recognizer.translationInView(self.view)
if let myView = recognizer.view {
myView.center = CGPoint(x: myView.center.x, y: myView.center.y + translation.y)
}
recognizer.setTranslation(CGPointZero, inView: self.view)
if recognizer.state == UIGestureRecognizerState.Ended {
let velocity = recognizer.velocityInView(self.view)
if velocity.y > 100 {
dismissViewControllerAnimated(true, completion: nil)
} else {
// Reposition Back
}
}
}
不過,我想視圖位置回到原來的地方,但我無法弄清楚如何..
還有,就是我的方法做這件事的好方法還是一個非常原始的方法?
您是否嘗試過你的觀點的中心設置到原來的位置?如果需要,您可以在視圖控制器上引用原始中心。 –
我對Swift比較陌生,所以實際上我並沒有得到什麼:/我試圖實現的是將視圖從(0,0)開始(x,y) - 左上角 – senty
不是確定它是否能正常工作,但試試看: 'let frame = myView.frame' 'frame.origin = CGPointMake(0,0)' 'myView.frame = frame' –