允许滚动内容大小等于帧大小

Posted

技术标签:

【中文标题】允许滚动内容大小等于帧大小【英文标题】:Allow scrolling with content size equal to frame size 【发布时间】:2012-09-11 17:41:47 【问题描述】:

如何创建分页UIScrollView,其中内容大小仅允许查看一项(但左右两侧内容较多,应该无法访问)?我想将用户“困”在一个页面上,并在任一侧进行反弹,类似于分页 UIScrollView 仅处理一页内容的方式。

但如果我将内容大小设置为与我的单页相同的宽度,则滚动将完全禁用。

【问题讨论】:

【参考方案1】:

要适当地使任何UIScrollView 始终弹跳,请设置其alwaysBounceHorizontal/Vertical: 属性:

[_scrollView setAlwaysBounceHorizontal:YES];

【讨论】:

【参考方案2】:

将内容大小设置为略大于您的框架大小应该可以做到这一点。一两点肯定会;你甚至可以用一小部分钱侥幸逃脱。无论哪种方式,当用户释放滚动视图时,您的滚动视图委托应处理将视图滚动回“居中”内容偏移量。

【讨论】:

我不得不说你的方法有点“hackish”。我在 Ben 的另一个问题中回答了他的问题:***.com/questions/12356680/shrinking-a-uiscrollview。 (使用setAlwaysBounceHorizontal:)。 请添加这个作为答案,我同意。 @BenPackard 很好,因为您的其他问题会回答其他问题,看来 ;)【参考方案3】:

您可以将 scrollEnabled 设置为 NO,这可以防止滚动视图被移动,但这也可以防止反弹。我认为您需要在存在阻止滚动的条件时将项目移到两侧并重置 contentSize;然后在条件清除后重新添加它们。

【讨论】:

以上是关于允许滚动内容大小等于帧大小的主要内容,如果未能解决你的问题,请参考以下文章

SWIFT:如何以编程方式设置集合视图的帧大小,使其等于其父视图?

UIScrollview 内容大小不会随着自动布局而增加

根据子视图的内容大小调整滚动视图

获取DOM节点的大小

UILabel 的内容大小不等于宽度锚点

水平图像滚动,图像大小调整以适合高度显示空白空间