2016-09-26 6 views
1

私は水平スクロールビューの位置を追跡したいと思いますが、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内のコードはうまく動作し、scrollViewが40ポイント毎にスナップするようにcontentOffsetを設定します。

答えて

0

scrollView.contentSizeがスクロールするのに十分な大きさであることを確認してください。それ以外の場合はtargetContentOffset.pointee.xはゼロになります。

関連する問題