2016-09-26 4 views
7

W mojej aplikacji jest prosty UITableView, a niestandardowy widok dla właściwości tableView.tableHeaderView. Po ustawieniu tej właściwości widok ma prawidłowy rozmiar (pełna szerokość, około 45 pikseli wysokości).Widok nagłówka UITableView pokrywa się z komórkami w systemie iOS 10

[_resultHeaderView sizeToFit]; // the view as the correct frame 
[_resultTableView setTableHeaderView:_resultHeaderView]; 

W iOS 9 i poprzednich wersji, wyświetla nagłówek poprawnie, ale w iOS 10, komórki zaczynają się od tej samej współrzędnej Y jak moim zdaniem nagłówka, więc moim zdaniem pojawia się nagłówek na pierwszej komórki.

Ustawienie tych właściwości również nie mają wpływu:

self.edgesForExtendedLayout = UIRectEdgeNone; 
self.automaticallyAdjustsScrollViewInsets = NO; 

Czy coś się zmieniło w iOS 10, które mogłyby wyjaśnić to różne zachowanie? Jakie byłoby dobre rozwiązanie?

Dzięki

+0

To nie jest nagłówek sekcji, ale raczej cały nagłówek tabeli. (Sekcje nie mają nagłówków). Odnoszę się do tego: https://developer.apple.com/reference/uikit/uitableview/1614904-tableheaderview?language=objc. Poza tym moja konfiguracja działa w iOS 9 i poniżej, więc nie sądzę, że to jest problem ... – invalidArgument

+0

Dlaczego to pytanie miało -1? Byłoby miło wyjaśnić, że mogę poprawić swój udział tutaj ... – invalidArgument

Odpowiedz

6

Błąd był w tym, że widok był zmieniany automatycznie, więc jej wysokość ramy naprawdę było 0, kiedy została ona przyłączona do Tableview, co tłumaczy zachowanie.

Ustawienie autouzupełniania Maska na żadną naprawiła ten błąd.

_headerView.autoresizingMask = UIViewAutoresizingNone

Ponownie, nie jest konieczne w iOS 9 i poniżej. Mam nadzieję, że to pomoże komuś innemu.

+0

Dzięki! Ten był trudny :) –

+9

ustawić UIViewAutoryzacja wartość UIViewAutoresizingNone w Swift 3, ustawić go na [] –