UIScrollView contentOffset在Swift中始终为零
问题描述:
我想跟踪水平scrollView的位置,但是当我打印contentOffset.x或contentOffset时,它们总是返回零。 这是我的类代码:UIScrollView contentOffset在Swift中始终为零
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
将为零。