带分页的UIScrollView +显示前一页/后一页的部分内容

我试图创build一种类似“Cut the Rope”游戏的“游戏模式”菜单来select关卡:

剪下绳子菜单

我特别想要达到同样的效果,即显示“当前项目”(在这种情况下,“2. Fabric Box”项目)加上一些以前和以后的项目(以确保用户意识到有更多的滚动模式可用),启用分页(使滚动视图自动“中心”这些项目)。

这似乎是一个启用分页的UIScrollView自然的工作,但从文档看来,分页出现在视图边界的倍数上。

所以:如果分页出现在视图边界的倍数上,有没有办法通过UIScrollView来实现这种效果?

我们看到屏幕的整个宽度的事实表明,在这种情况下,UIScrollView框架的宽度将是320px,但是每个单独的项目都需要小于这个值,以便显示上一个和下一个项目的一小部分,从而搞乱分页…

为了供您参考,您可以从这里看到一个页面控件的示例实现。 https://developer.apple.com/library/content/samplecode/PageControl/Introduction/Intro.html

对于你想要的实现,令你惊讶的是,scrollview的宽度实际上小于320(或480)。 要设置的魔法属性是:

scrollView.clipsToBounds = NO 

这个实现的唯一问题是,如果触摸超出了scrollView的范围,scrollview将不会触摸事件。 这可以通过将其父项hitTest事件传递给scrollView来解决。

只是要链接到更好的解释: UIScrollView水平分页,如移动Safari标签

与我所推荐的略有不同,但做同样的事情。

编辑:

我有一个名为LXPagingViews的小项目,希望以一种开箱即用的方式(请放下我的pull请求或反馈): https : //github.com/lxcid/LXPagingViews