【问题标题】:Add scroll controller to CollectionView将滚动控制器添加到 CollectionView
【发布时间】:2017-04-25 23:25:38
【问题描述】:

我在 ViewController 中有一个 Collection View,带有一个 Pan Gesture Recognizer 来管理单元格的重新排序。因此,为了滚动 Collection View,我想在 Collection View 的一侧添加一个“滚动控制器”,例如 Noteshelf 应用程序,如下所示:

我的收藏视图是一个简单的收藏视图,每个单元格都有一个标签:

【问题讨论】:

  • 对不起,如果我在语言上犯了一些错误,我是意大利人
  • 你到底想做什么?集合视图本身有滚动权吗?
  • @Arjuna 我正在尝试在 Noteshelf 中添加一个视图,因为使用 Pan Gesture Recognizer 我无法使用默认滚动
  • 抱歉,我无法下载 NoteShelf,因为它不是免费的。我猜你可能想用 UITextView 做笔记?
  • @Arjuna 我想做这样的事情youtu.be/ET_J51se3k0

标签: ios swift scroll uicollectionview scrollbar


【解决方案1】:

将您的笔记视图放在滚动视图中,并通过将 isScrollEnabled 设置为 false 来禁用用户滚动。将 UIPanGestureRecognizer 添加到您的侧边栏,并使自己成为手势识别器的目标。在您的点击手势处理函数中,您:

  1. 使用translation(in:)获取pan的当前翻译
  2. 使用此值滚动滚动视图 setContentOffset(_:animated:)
  3. 重置翻译,以便在下次与setTranslation(_:in:) 通话时仅获得差额而不是总数

编辑清楚,UICollectionView 继承自 UIScrollView,因此它具有所有 UIScrollView 属性,您只需要查看 UISCrollView 而不是 UICollectionView。

【讨论】:

  • 好的,谢谢。如何制作像 Noteshelf 这样的“纹理视图”?我应该使用 UIView 还是其他东西?
  • 从屏幕截图看不太清楚;看起来“感觉”部分是 UIImageView。实际的滚动条似乎是覆盖在毛毡图像上的一系列半透明条。您可以在 Photoshop 中制作图像视图,或者您可以使用 CAShapeLayer 以编程方式绘制,然后使用 CAReplicatorLayer 重复它们
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-02
  • 1970-01-01
  • 2019-10-03
  • 1970-01-01
  • 1970-01-01
  • 2015-09-07
  • 1970-01-01
相关资源
最近更新 更多