2016-09-26 8 views
1

Je veux suivre la position de mon scrollView horizontal, mais quand j'imprime le contentOffset.x ou contentOffset, ils retournent toujours zéro. Ce est le code de ma classe:UIScrollView contentOffset retourne toujours zéro dans 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 
} 

} 

Toutes les idées sur ce qui pourrait être le problème? Le code à l'intérieur de scrollViewDidEndDragging fonctionne très bien et définit le contentOffset de sorte que le scrollView s'aligne tous les 40 points.

Répondre

0

Assurez-vous que scrollView.contentSize est suffisamment grand pour permettre le défilement. Autrement targetContentOffset.pointee.x sera zéro.