2016-09-26 3 views
1

Я хочу отслеживать положение моего горизонтального 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 точек.

ответ

0

Убедитесь, что scrollView.contentSize достаточно большой, чтобы позволить ему прокручивать. В противном случае targetContentOffset.pointee.x будет равен нулю.