2016-10-12 3 views
3

In UIViewControllers Lebenszyklus, wo ist am besten contentOffest eines UIScrollView einzustellen? Wenn es in viewDidLoad oder viewWillAppear eingestellt ist, hat es keinen Effekt. Wenn in viewDidAppear dann wird ein kleiner 'Sprung' am Anfang auftreten.Wo/wann set contentOffset?

mit Versuchte:

setContentOffset(CGPoint(x: some_value, y: 0), animated: false) 

und:

contentOffset.x = some_value 

Ich brauche contentOffset mit einer früheren gescrollt Position vorzuladen.

Wie auch immer UIScrollView ist ein UICollectionView.

+0

Ihre UI-Komponente (UILabel, UIView etc Höhe und Breite ist dynamisch? (Nach Inhalt) – iMHitesh

+0

'viewWillAppear (_ :)'? – keithbhunter

+0

'viewWillAppear' hat keine Wirkung. –

Antwort

0

versuchen, es zu verwenden, in viewDidLayoutSubviews

0

Sie viewWillAppear und viewDidLoad vor dem Offset einzustellen versuchen, rufen sollten.

Es ist jedoch möglich, dass Sie versuchen, den Offset im Lebenszyklus der Ansicht zu früh einzustellen.

könnte es gut sein, -(void)viewDidLayoutSubviews; zu überschreiben, und legen Sie den Offset dort fest.

als die Frames Ihrer Ansicht sollten alle zu diesem Zeitpunkt entsprechend eingestellt werden.

Hinweis: erinnern Super zu nennen es zu

Diese Antwort finden von here ist.

Verwandte Themen