用动画隐藏上方的 CollectionView 单元格(Swift 4)
Posted
技术标签:
【中文标题】用动画隐藏上方的 CollectionView 单元格(Swift 4)【英文标题】:Hide upper CollectionView cells with animation (Swift 4) 【发布时间】:2018-09-22 07:59:12 【问题描述】:我怎样才能做到这样,当我向下滚动时,顶部单元格不会像我的那样被修剪并用动画隐藏?
我的应用:
示例:
我试过VegaScroll,但与描述不符
【问题讨论】:
题外话:那是哪个应用程序? @RakeshaShastri 用于存储折扣卡 我的意思是应用名称。 @RakeshaShastri 还没有出现,但目前为止持卡人 可能是因为您每行有 2 个单元格? 【参考方案1】:在将布局设置为 Vega 后,您需要使用委托编辑布局
我已经使用此代码实现了这一点。
//in viewDidLoad
let layout1 = VegaScrollFlowLayout()
collectionView.collectionViewLayout = layout1
然后使用CollectionView布局Delegate
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
let width = collectionView.frame.width / 3 - 1
return CGSize(width: width, height: width)
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat
return 1.0
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat
return 1.0
我没有看到您提供的任何代码,但我假设您像这样覆盖布局。
collectionView.collectionViewLayout = layout
layout.minimumLineSpacing = 20
layout.itemSize = CGSize(width: collectionView.frame.width, height: 87)
layout.sectionInset = UIEdgeInsets(top: 10, left: 0, bottom: 10, right: 0)
那是什么导致了问题,请注意上面的解决方案代码每行显示 3 个单元格。
或者您可以简单地通过在 ViewDidLoad 中使用此代码来实现。
let layout1 = VegaScrollFlowLayout()
collectionView.collectionViewLayout = layout1
layout1.minimumLineSpacing = 1
let width = Col1.frame.width / 3 - 1
layout1.itemSize = CGSize(width: width , height: 87)
layout1.sectionInset = UIEdgeInsets(top: 10, left: 0, bottom: 10, right: 0)
【讨论】:
请记住,您需要提供正确的商品尺寸才能使其正常工作以上是关于用动画隐藏上方的 CollectionView 单元格(Swift 4)的主要内容,如果未能解决你的问题,请参考以下文章