Swift iOS -Collection查看如何从屏幕上滚动单元格

时间:2018-06-09 18:01:24

标签: ios swift uiscrollview uicollectionview uicollectionviewcell

我有一个包含4个单元格的collectionView。由于集合视图中只有4个单元格,因此不会进一步滚动。

向上滚动时我想滚动屏幕上的4个单元格(collectionView将显示为空)。一旦细胞关闭屏幕我想滚动停止,我不想永远滚动。当向下滚动时,我想将4个单元格滚动回场景。

我尝试更改collectionView.bounds.origincollectionView.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)
}

1 个答案:

答案 0 :(得分:1)

您可以使用scrollView' contentInset

collectionView?.contentInset.bottom = collectionView?.frame.height ?? 0