我的UICollection上方有两个标签,我需要在集合视图中滚动时设置动画。基本上给用户一种感觉,即屏幕是一个大滚动视图。
我的视图在界面构建器中显示如下:
我已经提出以下代码,以便在较小的屏幕上看起来更好,但它没有给我我想要的效果:
g
此代码的问题在于屏幕现在跳了起来。周围而不是动画,就好像它是集合视图的一部分。
此代码的另一个问题是它跳了起来'一旦你开始向另一个方向滚动,就会回来。无论你是在UIScrollView的顶部还是底部。将TopConstraint设置为50应该只有在您处于最顶层时才会感到高兴。
答案 0 :(得分:1)
以下是如何将前两个单元格设置为集合视图的宽度:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let insets = collectionView.contentInset
let collectionViewWidth = collectionView.frame.width - (insets.left + insets.right + 1)
let collectionViewHeight = collectionView.frame.height - (insets.top + insets.bottom)
switch indexPath.row {
case 0, 1:
return CGSize(width: collectionViewWidth, height: collectionViewHeight / 8)
default:
return CGSize(width: collectionViewWidth / 3, height: collectionViewHeight / 8)
}
}
您可以更改高度除以获得所需比率的程度。与默认值相同。所以说你希望前2个后的所有单元格每行3个,你可以将collectionViewWidth / 3
分开然后,您可以创建一个不同的集合视图单元子类来生成前两个单元格,在cellForItemAtIndexPath中,您将检查它是什么,并相应地设置您的单元格。