2

我想跟踪我的水平滚动视图的位置,但是当我打印 contentOffset.x 或 contentOffset 时,它们总是返回零。这是我的课程的代码:

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 个点捕捉一次。

4

1 回答 1

0

确保它scrollView.contentSize足够大以允许它滚动。否则targetContentOffset.pointee.x将为零。

于 2017-05-31T05:45:43.743 回答