2017-08-24 14 views
10

kiedy mój UIViewController pojawia się z UICollectionView w środku, zawartość przewija się trochę, gdy się pojawia.iOS 11: UICollectionView: kiedy się pojawia, przewijanie się dzieje

I wdrożone scrollViewDidScroll: a ja zalogowaniu się contentOffset.y:

-20.000000 
-20.000000 
0.000000 
0.000000 

Dzieje się tak tylko na iOS 11 (symulator i urządzenia), a nie na iOS 10 lub iOS 9. Każdy przeżywa to inaczej?

EDYTOWANIE rzecz BARDZO WEIRD: dzieje się tak tylko wtedy, gdy nie jest wywoływana viewDidLoad, np. gdy kontroler UIViewController już istnieje i jest ponownie wyświetlany, ale nie po raz pierwszy pokazujący, że UIViewController ...

+0

Mają cię próbował wyłączyć "automaticAdjustsScrollViewInsets" na swoim ViewController? – vmeyer

+0

tak ... dodatkowe informacje: zapoznaj się z moją edycją – swalkner

+0

Czy w kontrolerze ViewController wyświetlany jest pasek stanu? – vmeyer

Odpowiedz

39

W iOS 11, contentInset.top można dodać w UIScrollView i podklasach (UICollectionView, UITableView) podczas gdy pasek stanu, navigationBar lub inna treść pojawi się w hierarchii widoku.

Ta wstawka pochodzi z nowej właściwości adjustContentInset. (Doc: adjustedContentInset)

Aby usunąć ten dodatkowy wstawka ustaw zawartość regulację wstawka na Scrollview się nigdy:

[self.myScrollView setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentNever];

Więcej informacji w filmie WWDC17: Updating Your App for iOS 11 w 19'

+0

to wszystko, wielkie dzięki! Wciąż trochę dziwne, ponieważ nie było to konieczne przed pewnymi zmianami po mojej stronie (nawet na iOS 11), ale niestety nie wiem dokładnie, co spowodowało to. Nieważne, działa teraz, dzięki! – swalkner

+1

Być może rozumiem, gdy właściwość adjustContentInset jest wypełniona lub nie: Kiedy przewijany widok jest dołączony do górnej/dolnej części widoku kontrolera, zostanie zmienionyContentsInset, a gdy jest dołączony do górnego/dolnego przewodnika układu, adjustContentInset wynosi zero! – vmeyer

+0

Dzięki, to takie dziwne, że zacznij od contentinset 0, ale zatrzymaj się na contentinset -64 !! więc właśnie dowiedziałem się, że ten adres URL: – Einzeln

Powiązane problemy