Cele bloga
Po przeczytaniu tego bloga będziemy mogli zrozumieć przyczynę dodatkowej przestrzeni między górnym paskiem nawigacyjnym a widokiem przewijania w aplikacji na iOS w wersjach iOS 7 na iOS 10.
Problem Statement
Kiedy dodajemy widok przewijania lub widok tabeli (dowolny przewijany widok) w kontrolerze widoku, który zawiera pasek nawigacji u góry, mamy do czynienia z typowym problemem, który był dodatkową przestrzenią między górnym paskiem nawigacyjnym a widokiem przewijania.
Dlaczego obecny problem istnieje
Od systemu iOS 7 do iOS 10, kiedy dodajemy pasek nawigacyjny na wierzchu dowolnego kontrolera ViewController, wówczas Xcode oferuje opcję, która sprawia, że pasek nawigacji jest półprzezroczysty. Abyśmy mogli zobaczyć za pomocą paska nawigacji i przewijanie strony można zobaczyć za pomocą paska nawigacji.
Przyczyną problemu jest to, że po dodaniu widoku przewijania w kontrolce ViewController i ustawieniu paska nawigacji oraz półprzezroczystości, ScrollView pozostawia margines z głównego widoku paska nawigacyjnego. Ale pasek nawigacyjny został dodany w czasie wykonywania i przesuwa główny widok, tak aby pasek nawigacji zmieścił się na górze. W takim przypadku widok jest przesunięty w dół za pomocą paska nawigacji, a widok przewijania pozostawia margines dla paska nawigacji. Tutaj obserwujemy, że dodatkowy odstęp został dodany dwa razy.
Był to jedyny powód, dla którego widzimy dodatkową przestrzeń między paskiem nawigacji a widokiem przewijania.
Procedura rozwiązania problemu
Istnieją dwa sposoby rozwiązania tego problemu. W obu przypadkach ograniczamy widok przewijania, aby zostawić dodatkowy margines dla paska nawigacyjnego.
1.Możemy ustawić opcję Translucent dla paska nawigacji na "False" w Xcode
? This will make the navigation bar Opaque and then the scroll view is not required to scroll under the Navigation Bar. So that Scroll View will leave no space for Navigation Bar.
W poniższym Gif widać, że ograniczenia układu widoku zmieniają się po włączeniu / wyłączeniu właściwości "Translucent" paska nawigacji.
2.Możemy wyłączyć "Dostosuj przewijanie Zobacz wstawki"właściwość ViewController.
? This will restrict the Scroll View to leave extra space for the Navigation bar on top.
Podsumowanie
Po wykonaniu powyższej procedury będziesz mógł usunąć dodatkową przestrzeń między paskiem nawigacji i widokiem przewijania.