Swift - collectionView 的 scrollView.content.y 是如何确定的?
Swift -how is a collectionView's scrollView.content.y determined?
我有一个包含 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
我想不通的是 92
的 currentOffset
是从哪里来的。
This不是很清楚:
contentOffset
The point at which the origin of the content view is offset from the
origin of the scroll view.
拖动collectionView后,currentOffset是怎么确定的?
下图中底部是带有来自 scrollViewDidEndDragging
方法的打印语句的调试器
不确定这是否有任何区别,但 collectionView 的 topAnchor 和 bottomAnchor 被固定到视图的 safeAreaLayoutGuide ..., constant: 0
或者它直接锚定到它的顶部和底部
collectionView第一次拖放后,scrollView的左上角(0,0)距离collectionView的左上角(0,0)的距离。
所以一开始是拉升92点(0,-92)然后放手
我有一个包含 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
我想不通的是 92
的 currentOffset
是从哪里来的。
This不是很清楚:
contentOffset
The point at which the origin of the content view is offset from the origin of the scroll view.
拖动collectionView后,currentOffset是怎么确定的?
下图中底部是带有来自 scrollViewDidEndDragging
方法的打印语句的调试器
不确定这是否有任何区别,但 collectionView 的 topAnchor 和 bottomAnchor 被固定到视图的 safeAreaLayoutGuide ..., constant: 0
或者它直接锚定到它的顶部和底部
collectionView第一次拖放后,scrollView的左上角(0,0)距离collectionView的左上角(0,0)的距离。
所以一开始是拉升92点(0,-92)然后放手