Swift-如何确定collectionView的scrollView.content.y?

时间:2019-08-15 02:38:36

标签: ios swift uicollectionview uiscrollview contentoffset

我有一个包含5个单元格的collectionView。使用此scrollView方法将collectionView向下拖动之后,我将获得以下信息:

func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {

    let currentOffset = scrollView.contentOffset.y // 92 ???
    print("currentOffset: \(currentOffset)")

    let contentHeight = scrollView.contentSize.height // height of all the cells added together -616.310
    print("contentHeight: \(contentHeight)")

    let frame = scrollView.frame.size.height // height of the collectionView itself from it's topAnchor to it's bottomAnchor - 725
    print("frame: \(frame)")

    let maximumOffset = contentHeight - frame // -108.689453125 // distance between contentHeight (bottom of all the cells) and the frame
    print("maximumOffset: \(maximumOffset)")
}

contentHeight是所有加在一起的单元格的高度,即:-616.310

frame是collectionView本身在其topAnchor和bottomAnchor之间的高度,即:725

maximumOffset是contentHeight(所有单元格的底部)与框架之间的距离,即:-108.689453125

我不知道currentOffset的{​​{1}}是从哪里来的。

This不太清楚:

  

contentOffset

     

内容视图的原点与   滚动视图的原点。

拖动collectionView后,如何确定currentOffset?

下面底部的图片是调试器,其中包含来自92方法的打印语句

enter image description here

不确定这是否有任何区别,但是collectionView的topAnchor和bottomAnchor固定在视图的scrollViewDidEndDragging上,还是直接锚定在其顶部和底部

1 个答案:

答案 0 :(得分:0)

这是在拖动collectionView并将其放开后,scrollView的左上角(0,0)与collectionView的左上角(0,0)的顶部之间的距离。

所以它最初被拉高了92点(0,-92),然后放开。