繁体   English   中英

iOS创建滑动返回

[英]iOS creating swipe to go back

我想像iOS 7中那样进行反击。我对整个iOS开发仍然是新的,这就是我目前使用的。
目前我有一个平移手势,可以检测用户是否向后滑动然后只是弹出导航控制器。

UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)];
[self.view addGestureRecognizer:pan];


-(void)handlePan:(UIPanGestureRecognizer *)sender{
    CGPoint tran = [recognizer translationInView:recognizer.view];
    CGPoint vel = [recognizer velocityInView:recognizer.view];
    if(vel.x > 500 && tran.x > 100){
        [self.navigationController popViewControllerAnimated:YES];
    }
}

我希望以前的视图跟随手指在平移手势上,而不是只是将pop调用到root。 例如,

SecondView在视图之间滑动的firstView

这将需要一个自定义容器视图控制器。 简单来说,你有一个视图控制器,它可以容纳2个视图控制器(左边是视图1,右边是视图2)。

将平移手势附加到容器视图,当用户移动时,您可以为每个子视图控制器计算适当的帧。 例如,如果用户向右平移,则将视图2向右移动,并从左侧显示视图1(根据需要调用子视图控制器方法)。

手势完成后,您应该检查最终位置以及平移的最终方向,以决定放置视图控制器的位置。 例如,如果您在屏幕上的视图1的90%右侧完成平移,则应在屏幕上完全移动视图1并在屏幕上查看2。 如果你用50%的每个完成,你应该使用平移的方向来决定哪个视图将保留在屏幕上。

使用IIViewDeckController它更容易,它可以做你想要的IIViewDeck GitHub

我想在这种情况下你应该使用UIScrollView,将滚动视图的内容大小设置为width_of_view * numberOfViews并将所有视图水平添加到滚动视图。 当用户在屏幕上滚动或滑动手指而不是显示下一个视图时。 这里有一个Apple Doc链接可以帮到你。 不要忘记在XIB或代码中设置水平滚动启用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM