2017-03-16 7 views
2

Ich überschreibe viewDidLayoutSubviews und setze die contentOffset von meiner UIScrollview. Aber die contentOffset immer auf (0, 0) vor viewDidAppear zurückgesetzt. Ich drucke die contentOffset in viewWillAppear, viewDidLayoutSubviews, viewDidAppear. Hier sind die Ergebnisse.UIScrollViews contentOffset wird nach viewDidLayoutSubviews zurückgesetzt

view will appear 
(0.0, 0.0) 
view did layout subviews 
(-37.5, -133.5) 
view did appear 
(0.0, 0.0) 

Ich möchte die contentOffset vor dem UIScrollView sichtbar werden setzen.

Ich versuchte self.automaticallyAdjustsScrollViewInsets = false, aber nicht funktionieren.

Antwort

0

Weil viewDidLayoutSubviews wird jedes Kind Layout aufgerufen. Vielleicht hat Ihr Scrollview zu diesem Zeitpunkt kein Layout erstellt.

Lassen Sie es versuchen. Hoffe es kann dir helfen. :)

let indexSubView = 0 
override func viewDidLayoutSubviews() { 
    super.viewDidLayoutSubviews() 

    indexSubView += 1 
    if indexSubView >= self.view.subviews.count { 
     //do scrolling 
    } 
} 
Verwandte Themen