将 UIView 滑动到一边,让他消失 - ios

Posted

技术标签:

【中文标题】将 UIView 滑动到一边,让他消失 - ios【英文标题】:swipe UIView to the side and make him disappear - ios 【发布时间】:2016-03-01 23:40:47 【问题描述】:

我想从中心向左或向右滑动一些 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】:
[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) 


];

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

【讨论】:

没关系...我也懂objective-c,但我比较快。关于答案,这对我来说还不够。我需要滑动视图,例如向右滑动,并且我需要视图移动到我的手指移动它的位置,当我向右滑动视图时,我希望视图将在视图控制器的左侧之后飞行带动画。

以上是关于将 UIView 滑动到一边,让他消失 - ios的主要内容,如果未能解决你的问题,请参考以下文章

通过滑动 UIView 滑出导航以覆盖另一个 UIView

滑动手势在 IOS 中的 UIView 上不起作用

iOS从另一个视图的一侧滑动一个UIView(菜单)

IOS/Objective-C:检测 UIVIew 上的滑动和屏幕相同位置的按钮触摸

在 iOS7 中边缘滑动时,使键盘与 UIView 同步动画

使 UIView 接收点击,但将滑动传递给底层视图