我有一个包含4个单元格的collectionView。由于集合视图中只有4个单元格,因此不会进一步滚动。
向上滚动时我想滚动屏幕上的4个单元格(collectionView将显示为空)。一旦细胞关闭屏幕我想滚动停止,我不想永远滚动。当向下滚动时,我想将4个单元格滚动回场景。
我尝试更改collectionView.bounds.origin
和collectionView.contentSize.height
,但都没有效果,我仍然无法滚动屏幕上的4个单元格。
我总是可以添加明确的细胞,但这似乎是一种黑客攻击。
完成此任务的适当方法是什么?
override func viewDidLoad() {
super.viewDidLoad()
let layout = UICollectionViewFlowLayout()
layout.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0)
layout.scrollDirection = .vertical
collectionView = UICollectionView(frame: view.frame, collectionViewLayout: layout)
collectionView.delegate = self
collectionView.dataSource = self
collectionView.alwaysBounceVertical = true
collectionView.backgroundColor = .white
collectionView.register(MyCell.self, forCellWithReuseIdentifier: myCell)
view.addSubview(collectionView)
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 4
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: myCell, for: indexPath) as! MyCell
cell.textLabel.text = "Hello"
return cell
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: view.frame.width, height: 44)
}
答案 0 :(得分:1)
您可以使用scrollView' contentInset
:
collectionView?.contentInset.bottom = collectionView?.frame.height ?? 0