我想跟踪水平 ScrollView 的位置,但当我打印 contentOffset.x 或 contentOffset 时,它们总是返回零。 这是我类(class)的代码:
import UIKit
class ScrollForecast: UIScrollView, UIScrollViewDelegate {
@IBOutlet weak var scrollTemp: UILabel!
func scrollViewDidScroll(_ scrollView: UIScrollView) {
print(self.contentOffset.x)
}
func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
scrollView.decelerationRate = UIScrollViewDecelerationRateFast
let cellWidth: CGFloat = 40
var index = round(targetContentOffset.pointee.x / cellWidth)
targetContentOffset.pointee.x = index * cellWidth
}
}
关于可能是什么问题的任何想法? scrollViewDidEndDragging 中的代码工作正常并设置了 contentOffset,以便 scrollView 每 40 点捕捉一次。
最佳答案
确保 scrollView.contentSize
足够大以允许它滚动。否则 targetContentOffset.pointee.x
将为零。
关于swift - UIScrollView contentOffset 在 Swift 中总是返回零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39710253/