【问题标题】:UICollectionView doesn't bounce when datasource has only 1 item当数据源只有 1 项时,UICollectionView 不会反弹
【发布时间】:2013-08-25 19:19:25
【问题描述】:

我有一个带有自定义 UICollectionViewFlowLayout 的 UICollectionView。它水平滚动,一次只显示一个项目(全高)。我有 pagingEnabled = YES 以便它粘在页面上。

UICollectionView 显示特定日期内的照片。我最初有按钮来更改日期 +/- 1 天,但我认为如果用户可以将集合视图拉到第一个或最后一个图像(超过预定阈值)以更改日期,那将是整洁的。我使用 UIScrollView 委托方法实现了这个,它工作得很好......如果集合视图中有 2 个或更多项目。

这很难描述,但如果只有 1 个项目,它不允许我将项目拉过它的界限。 IE。没有反弹。

我希望有这种行为,但我需要先克服这个问题。我在想,如果我删除了 pagingEnabled = YES 并使用了 targetContentOffsetForProposedContentOffset:proposedContentOffset:withScrollingVelocity,我也许可以让它工作,但我真的很喜欢分页启用的敏捷行为。 (它们是互斥的)。

对此有什么想法吗?

【问题讨论】:

    标签: iphone ios uicollectionview uiscrollviewdelegate uicollectionviewlayout


    【解决方案1】:

    UICollectionView 具有属性alwaysBounceHorizontalalwaysBounceVertical。将水平设置为 YES did 技巧。

    【讨论】:

    • 要在 Interface Builder 中启用此功能 - 使用名为“Bounce Vertically”的选项。
    • alwaysBounceHorizontalalwaysBounceVertical 源自视图 UIScrollView
    • 那么我可以说UITableView 将此属性设置为默认设置为YES,因为它可以是边界?
    • 对我来说,在 viewDidLayoutSubviews 中分配 layout 实例是个问题。
    【解决方案2】:

    感谢@VaporwareWolf,答案是正确的。我想补充一点:

    不要忘记同时将bounces 属性设置为YES(通过故事板或您的代码)。

    【讨论】:

      猜你喜欢
      • 2012-11-04
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 2019-08-08
      • 1970-01-01
      • 2014-04-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多