2

水平方向の scrollView の位置を追跡したいのですが、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