我想从中心向左或向右滑动一些UIView,但是在边缘之后我想让视图消失。滑动应该由握住手指的位置跟踪,并且在手指滑向右侧或左侧的视图之后,视图应该飞到他滑倒的一侧,但是如果视图没有滑动我想要他回到他原来的位置。
我试图在我的UIView上使用UIPanGestureRecognizer
我的自定义UIView是artistDetailsView
var panGestureRecognizer: UIPanGestureRecognizer!
panGestureRecognizer = UIPanGestureRecognizer(target: self, action: "handlePanFrom:")
self.artistDetailsView.addGestureRecognizer(panGestureRecognizer)
那是在viewDidLoad()函数中
func handlePanFrom(recognizer: UIPanGestureRecognizer) {
let translation: CGPoint = recognizer.translationInView(recognizer.view)
let velocity: CGPoint = recognizer.velocityInView(recognizer.view)
print(translation)
if recognizer.state == UIGestureRecognizerState.Began {
}
else if recognizer.state == UIGestureRecognizerState.Changed {
//track the movement
}
else if recognizer.state == UIGestureRecognizerState.Ended {
//animate to final position
}
}
关于我的自定义视图 视图限制了所有屏幕 这意味着我的自定义视图和ViewController的相同。 当视图向左滑动时,视图的右侧应该在ViewController的左侧之后消失,当视图向右滑动时,左侧应该在ViewController的右侧之后消失。
问题是我不知道在UIPanGestureRecognizer的每个状态下该怎么做。
如果有人能帮助我,我会很高兴的!
答案 0 :(得分:0)
[secondViewController.view setFrame:rect]; //Where Rect is the current screen size
[UIView animateWithDuration:0.2 animations:^{
// move this page to the right:
[timeLinePaneController.view setFrame: swipeRightRect];
} completion:^(BOOL finished) {
}];
这是向右滑动并加载背景页面的代码。