将UIView扫到一边让他消失 - ios

时间:2016-03-01 23:40:48

标签: ios iphone swift uiview uigesturerecognizer

我想从中心向左或向右滑动一些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的每个状态下该怎么做。

如果有人能帮助我,我会很高兴的!

1 个答案:

答案 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) {


}];

这是向右滑动并加载背景页面的代码。