7

Mam projekt, w którym potrzebuję niestandardowy tabbar, navigationcontroller i pageviewcontroller w jednym widoku. Udało mi się to zrobić, ale napotykam błąd, którego nie mogę rozwiązać:Dlaczego ten widok UIScrollView nie działa poprawnie?

Pierwszy viewcontroller w moim pageviewcontroller nie ustawia poprawnie wysokości widoku (lub raczej jego wartość Y). Przewijanie w momencie powoduje ustawienie właściwej wysokości.

Utworzono minimalny testowy projekt here.

Edit: Próbowałem ustawienie collectionView.contentInset i automaticallyAdjustsScrollViewInsets ze wszystkich możliwych kombinacjach, ale bezskutecznie. Ktoś?

Odpowiedz

3

Pomyliłeś się z paskiem nawigacji i dolnym paskiem. Oto, jak to powinno działać w twoim projekcie w storyboardach dla PageViewController:

enter image description here

Usunąłem również linię automaticallyAdjustsScrollViewInsets = false i odznaczę ją w storybooku.
Możesz uzyskać stały projekt here

+0

Dzięki człowieku! Przepraszam, że nie zdążyłem przyznać nagrody. Jestem bardzo zadowolony z tej odpowiedzi! Przeczytam o tym "przedłużeniu krawędzi" i zapewne nauczę się trochę o tym, jak działa 'UIScrollView'. Dzięki jeszcze raz! – vrwim

+0

Tak więc miałem to i inną kwestią było to, że mój "UINavigationBar" nie miał jeszcze prawidłowej wysokości, więc sprawdziłem, czy jest 'nil' i użyłem zakodowanej wartości, aby zapobiec powstaniu problemu – vrwim

3

Spróbuj dodać automaticallyAdjustsScrollViewInsets = false dla swojego kontrolera strony. Zauważ, że pierwsza strona nie znajduje się pod górnym paskiem, podczas gdy jest po przewinięciu.

+1

To działa. Kontroler widoku strony używa również widoku przewijania, dzięki czemu automatyczne wstawki kontrolera widoku są do niego stosowane. Widok przewijania kontrolera widoku strony zapobiega także przewijaniu do góry po dotknięciu paska stanu. –