UIScrollView与分页+显示上一页/后一页的一部分

And*_*jão 32 iphone objective-c uiscrollview ios programmatically-created

我正在尝试创建一种类似于"Cut the Rope"游戏用来选择级别包的"游戏模式"菜单:

剪切绳子菜单

我特别想要的是达到显示"当前项目"(在这种情况下,"2. Fabric Box"项目)加上一些前一项和后一项的相同效果(以确保用户知道滚动时可以使用更多模式),启用分页(使滚动视图自动"居中"在这些项目上).

对于启用了分页的UIScrollView来说,这似乎是一项自然的工作,但是从文档中可以看出分页在视图边界的倍数上发生.

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

我们看到屏幕的整个宽度这一事实表明UIScrollView框架的宽度在这种情况下将是320px,但是每个单独的项目需要小于那个以显示前一个和下一个项目的一点点,从而弄乱了分页......

lxc*_*cid 45

供您参考,您可以从此处查看页面控件的示例实现. https://developer.apple.com/library/content/samplecode/PageControl/Introduction/Intro.html

对于您想要的实现,令您惊讶的是,scrollview的宽度实际上小于320(或480).要设置的神奇属性是:

scrollView.clipsToBounds = NO
Run Code Online (Sandbox Code Playgroud)

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

只是链接到一个更好的解释: UIScrollView水平分页像Mobile Safari选项卡

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

编辑:

我有一个名为LXPagingViews的小项目,它可以完成上述工作,希望以开箱即用的方式(请给我一个拉取请求或反馈问题):https://github.com/lxcid/LXPagingViews