如何开发屏幕之间的滑动

Posted

技术标签:

【中文标题】如何开发屏幕之间的滑动【英文标题】:How to develop swiping between screens 【发布时间】:2014-12-04 21:22:23 【问题描述】:

我想用 UITableView 开发两个屏幕,并使用 swipe 和 UISegmentedControl 在它们之间切换。我在网上发现可以将 UIScrollView 与分页一起使用。但是我发现在这里也将 UITableView 添加到 UIScrollView 中并不是一个好主意:

UITableView inside UIScrollView not receiving first tap after scrollling

重要提示:您不应在 UIScrollView 对象中嵌入 UIWebView 或 UITableView 对象。如果这样做,可能会导致意外行为,因为这两个对象的触摸事件可能会混淆和错误处理。

我发现在 ios 中几乎和我在通知中心所需要的完全一样。也可以垂直滚动和水平滑动。知道如何做类似的功能吗?

谢谢!迈克尔

【问题讨论】:

类似this? 【参考方案1】:

您可以简单地添加一个UIPanGestureRecognizer 来捕捉左右滑动并切换选项卡并在用于切换选项卡的滚动视图中禁用滚动。

将表格视图放在滚动视图中不好的原因是滚动会干扰。如果你禁用一个滚动它应该没问题。

【讨论】:

我认为我需要一些不同于仅识别左/右滑动手势和更改段索引的东西。我希望通过抓住屏幕并在您移动手指时将其向左或向右移动来进行滑动。当松开手指时,它将完成滑动(滚动视图中的分页)或滑动回原始屏幕,这取决于手指滑动的距离。 UIPanGestureRecognizer 可以做到吗?你有 swift 的例子吗?抱歉我的问题可能很愚蠢,但我是原生 ios 开发的新手。 我认为苹果不这样做的原因正是你在问题中所说的,它可能会干扰UITableView 我认为 Apple 会这样做。类似的概念在邮箱和 safari 中。您可以向上/向下滚动,并且可以滑动以转到上一页/下一页。 我不确定您在 Mail 中指的是什么,但 Safari 的导航行为与 UINavigationController 提供的导航行为相同。这仅在您沿边缘滑动时触发。当然,您可以使用百分比驱动的动画来实现类似的东西。 是的,你是对的,它只是沿着边缘。谢谢!

以上是关于如何开发屏幕之间的滑动的主要内容,如果未能解决你的问题,请参考以下文章

串口屏开发之滑动选择控件的使用总结——如何通过滑动屏幕实现参数选择设置和状态显示

ios开发 cell从屏幕外滑动进屏幕里面 重新走刷新表格的方法吗

如何让 UIPageControl 的背景颜色随着页面滑动而改变?

不是在屏幕上线性滑动

如何获得滑动/拖动触摸的增量

iOS:如何使用 Swift 在视图之间滑动