ios – 是否可以将UICollectionView中的滚动限制为集合中项目的子集?

ios – 是否可以将UICollectionView中的滚动限制为集合中项目的子集?,第1张

概述是否可以将UICollectionView中的滚动限制为集合中项目的子集? 我有一个UICollectionView,一次显示一个项目.每个项目占据屏幕的整个宽度.用户可以在项目之间水平滚动. 有时我希望能够限制用户根据特定条件在项目子集之间滚动. 例如,视图可能包含项目1到20,但我只希望用户能够在项目7和9之间滚动. 我已经尝试将contentSize更改为显示所需项目所需的宽度,然后更改co 是否可以将UICollectionVIEw中的滚动限制为集合中项目的子集?

我有一个UICollectionVIEw,一次显示一个项目.每个项目占据屏幕的整个宽度.用户可以在项目之间水平滚动.

有时我希望能够限制用户根据特定条件在项目子集之间滚动.

例如,视图可能包含项目1到20,但我只希望用户能够在项目7和9之间滚动.

我已经尝试将contentSize更改为显示所需项目所需的宽度,然后更改contentOffset,但这不起作用.

解决方法 我昨天花了6个小时研究这个,但在发布问题的几分钟内,我发现了解决方案的关键:

Cancel current UIScrollView touch

该答案描述了如何取消滚动.可以理解的是,用户在尝试滚动超出为其设置的限制时没有看到任何滚动行为;没有闪烁,没有.

我想出的解决方案是确定我希望用户看到的项目的起始和结束偏移,然后如果新偏移在开始之前或结束之后偏移,则取消在scrollVIEwDIDScroll中滚动:

- (voID)scrollVIEwDIDScroll:(UIScrollVIEw *)scrollVIEw {    //Prevent user from scrolling to items outsIDe the desired range    if (scrollVIEw.contentOffset.x < self.startingOffset ||        scrollVIEw.contentOffset.x > self.endingOffset) {        scrollVIEw.panGestureRecognizer.enabled = NO;        scrollVIEw.panGestureRecognizer.enabled = YES;    }}
总结

以上是内存溢出为你收集整理的ios – 是否可以将UICollectionView中的滚动限制为集合中项目的子集?全部内容,希望文章能够帮你解决ios – 是否可以将UICollectionView中的滚动限制为集合中项目的子集?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1010548.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存