2013-09-24 14 views

Odpowiedz

6

Zakładam, że chcesz zbudować aplikację na iOS7.

Generalnie robi się to automatycznie podczas kompilacji przy użyciu nowego zestawu SDK.

Na przykład ustawiasz UITableView lub UIScrollView z funkcją Autolayouts (rozszerzenie do pełnej wysokości widoku kontrolerów widoku).

UIViewControllers mają nową właściwość w iOS 7 o nazwie edgesForExtendedLayout. Domyślna wartość to UIRectEdgeAll, oznacza to, że kontroler rozszerza swoją zawartość na wszystkie krawędzie. Jeśli kontroler widoku jest zagnieżdżony w pliku UINavigationController lub UITabBarController, to automatycznie ustawia wstawki zawartości, aby można było przewinąć do góry i dołu oraz wyświetlić wszystkie elementy (lub komórki). Następnie, po przewinięciu zawartości poza ekranem, widać nowy efekt rozmycia iOS7 słupków.

Należy pamiętać, że do pozycjonowania innych elementów interfejsu użytkownika pod paskiem nawigacji, aby były widoczne i nie zachodziły na siebie na pasku, należy przeczytać dokumentację dla topLayoutGuide i bottomLayoutGuide. Z dokumentacji:

"[...] oznacza najwyższy pionowy zakres treści, który nie ma być wyświetlany za przezroczystym lub przezroczystym paskiem UIKit (takim jak pasek stanu lub nawigacyjny). .]”

TopLayoutGuide

BottomLayoutGuide

+1

nie automatycznie dostosować. Spojrzałem na Hiearchię dla VC i wygląda na to, że nie ma UINav ani UIToolbar zagnieżdżonych wewnątrz Table VC. Czy przypuszczalnie ma być jeden na liście? Pasek UINavigation pochodzi z kontrolera nawigacyjnego. – Alan

+0

Masz rację. Automatycznie kompensuje. Jednakże, jeśli przenosisz aplikację z aplikacji pre ios7, musisz zachować ostrożność, jeśli robisz jakieś modyfikacje wstawki tableview. Modyfikowałem wstawkę tableview dla mojego Pull down to Refresh, co spowodowało zerowanie wstawki tableview. Teraz należy uwzględnić wysokość paska nawigacji. – Alan

Powiązane problemy