gpt4 book ai didi

ios - 正确的scrollViewWillEndDragging代码?

转载 作者:行者123 更新时间:2023-11-30 14:08:11 25 4
gpt4 key购买 nike

如何让 UIScrollView 在 View 末尾停止拖动,并将其捕捉到正确的位置?我尝试使用以下代码,但是虽然它正确减速并捕捉到 View 顶部的完美位置,但它不允许我向下滚动:

 func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {

let layout = self.collectionView?.collectionViewLayout as! UICollectionViewFlowLayout

let itemHeightIncludingSpacing = self.view.frame.height + layout.minimumInteritemSpacing

var offset = targetContentOffset.memory

let index = (offset.x + scrollView.contentInset.bottom) / itemHeightIncludingSpacing
let roundedIndex = round(index)

offset = CGPoint(x: roundedIndex * itemHeightIncludingSpacing - scrollView.contentInset.bottom, y: -scrollView.contentInset.top)
targetContentOffset.memory = offset
}

这是我的 ScrollView 的顶部:

enter image description here

这是底部,它不在你所看到的应该的位置。它应该与底部偏移值齐平,就像顶部一样:

enter image description here

如何让滚动条像顶部一样停止齐平?

最佳答案

您是否制作了具有该方法的 UIScrollView 扩展?它不存在,但 scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool) 存在。如果这是您在扩展中的自定义方法,请确保在代码中的某个位置调用它(如我提到的委托(delegate)方法)。另外,重置参数对 ScrollView 没有任何作用。我建议采用不同的方法。

我也不知道你在这里问什么。您是否不希望内容在弹回原位之前被拉过屏幕边缘?如果是这样,则不需要该方法。只需将 self.myScrollView.bounces = false 添加到 viewDidLoad()

编辑:好的,试试这个
func collectionView(collectionView: UICollectionView, 布局 collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex 部分: Int) -> UIEdgeInsets {
返回 UIEdgeInsetsMake(0, 0, 0, 0)
}

关于ios - 正确的scrollViewWillEndDragging代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32082820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com