我改编了一个UIPanGestureRecognizer,使用下拉来关闭视图。我这样做了,所以现在可以在 y 轴上拖动视图,如果 y 的变化大于 100,它会关闭视图。
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
}
}
}
但是,我想将视图定位回其原始位置,但是,我不知道该怎么做。
另外,我的方法是一种好方法还是一种非常原始的方法?
您能否尝试在// Reposition Back
注释中添加以下代码:
let frame = myView.frame // Get the current view frame
frame.origin = CGPointZero // Change the frame origin to x:0 y:0
myView.frame = frame // Change the myView frame to frame