5

Jak to jest powiedziane w tytule, kiedy próbuję wepchnąć UIViewController z UITableView w to i pokazać LargeTitle, pokazuje się w pierwszej chwili i następnie chowa się do małej.UINavigationBar przeskakuje z dużego tytułu na mały podczas przesuwania do UIViewController z osadzonym UITableView iOS 11

To dziwne, ale ten błąd jest odtwarzany tylko na urządzeniach 4-calowych.

enter image description here

Takie zachowanie to wydaje się być Apple bug.

Jakiekolwiek inne obejścia lub niuanse, które przegapiłem? Dzięki za wszelkie sugestie.

Uploaded test project (GitHub)

Odpowiedz

1

Obejścia znalazłem dotąd

  1. Attach UITableView „s Najlepiej do SafeArea's górze, ale to podejście stracić efekt przezroczystych UINavigationBar i LargeTitle wali bardzo szybko na przewijanie
  2. Korzystając UITableViewController zamiast z UIViewController+UITableView, ale to podejście traci znaną elastyczność. Ukrywanie tableView lub dodawanie subviews nie jest banalne.
  3. pushViewController bez animacji
+0

Ten sam problem pojawia się, gdy kontroler widoku jest podklasą 'UITableViewController'. Ponadto, nie należy doradzać innym, aby unikali "UITableViewController". Jeśli twój projekt prezentuje uporządkowane wiersze informacji i przestrzega wytycznych interfejsu ludzkiego Apple, prawdopodobnie * powinieneś go używać i modyfikować projekt, aby w pełni go wykorzystać. Jeśli "zwiniesz swój własny" ('UIViewController + UITableView') będziesz musiał ciągle dodawać kod, aby obsłużyć rosnącą liczbę zachowań' UITableViewController' daje ci za darmo, lub wysłać aplikację, która nie ma ochoty należy do platformy. – macserv

+0

Jak "dołączasz do top SafeArea"? –

+0

@ErikAigner można to zrobić na dwa sposoby: 1. można aktywować znacznik bezpiecznego obszaru w Inspektorze plików w Konstruktorze interfejsów i wykonać ograniczenie z widoku z góry tabeli do góry na bezpieczny obszar lub 2. w kodzie podobnym do view.safeAreaLayoutGuide.topAnchor. constraint (equalTo: tableView.topAnchor) .isActive = true – Sander