2016-09-26 6 views
1

Ich möchte die Position meiner horizontalen scrollView verfolgen, aber wenn ich contentOffset.x oder contentOffset drucke, geben sie immer Null zurück. Dies ist der Code für meine Klasse:UIScrollView contentOffset gibt in Swift immer 0 zurück

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 
} 

} 

Irgendwelche Ideen, was das Problem sein könnte? Der Code in scrollViewDidEndDragging funktioniert einwandfrei und setzt den contentOffset so, dass scrollView alle 40 Punkte einrastet.

Antwort

0

Stellen Sie sicher, dass scrollView.contentSize groß genug ist, um das Scrollen zu ermöglichen. Andernfalls wird targetContentOffset.pointee.x Null sein.