Chcę ustawić wysokość pierwszego nagłówka w moim UITableView. W przypadku innych nagłówków chcę, aby pozostały domyślną wysokością. Jaką wartość / stałą mogę wstawić w miejsce „someDefaultHeight” w poniższym kodzie?
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 0)
return kFirstHeaderHeight;
return someDefaultHeight;
}
Dzięki
iphone
cocoa-touch
uitableview
wodza
źródło
źródło
Odpowiedzi:
W systemie IOS 5.0 i nowszych można zwrócić UITableViewAutomaticDimension w większości metod delegata. Znajduje się na dole strony z dokumentacją
źródło
UITableViewAutomaticDimension
zwraca-1
(stała stała) i nie widzę żadnych sekcji w moimUITableView
.UITableViewAutomaticDimension
pokazuje -1 kiedyNSLog
to?- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
jeśli implementujesz- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
metodę, to nie działa.UITableViewAutomaticDimension
, będzie miała zerową wysokość.viewForHeaderInSection
, wystarczy ustawićestimatedSectionHeaderHeight
Po sprawdzeniu ustawień domyślnych w mojej aplikacji wygląda na to, że dla zgrupowanej tabeli domyślna jest wysokość 22, a dla niezgrupowanej tabeli wysokość domyślna to 10.
Jeśli zaznaczysz wartość właściwości sectionHeaderHeight w widoku tabeli, która powinna Ci o tym powiedzieć.
źródło
UITableViewStyleGrouped
ma 22 lata iUITableViewStylePlain
10.Właściwie załatw sprawę :)
źródło
return [self.tableView sectionHeaderHeight];
lub jeszcze lepiejreturn [tableView sectionHeaderHeight];
. Jednak oba zwracają dla mnie -1, być może dlatego, że nie używam stalówki ani storyboardu.Gwoli ścisłości: w iOS7 + wysokość nagłówków sekcji w stylu zgrupowanych jest
55.5
dla pierwszego i38
dla kolejnych nagłówków. (mierzone za pomocą DCIntrospect)źródło
W przypadku wersji Swift 4.2 należy zwrócić UITableView.automaticDimension
źródło
Nie jestem pewien, jaka jest prawidłowa odpowiedź, ale ani 10, ani 22 nie wydają się być poprawną wysokością dla zgrupowanego widoku tabeli w iOS 5. Używam 44, na podstawie tego pytania i przynajmniej wydaje się, że z grubsza prawidłowej wysokości.
źródło
Aby uzyskać domyślną wysokość, po prostu
super
ją obsłużmy:źródło
[super tableView:tableView heightForHeaderInSection:section];
zwraca dla mnie 0, być może dlatego, że nie używam stalówki ani scenorysu.To powinno załatwić sprawę
źródło
return [self sectionHeaderHeight];
[self sectionHeaderHeight];
generuje błąd. Czy miałeś na myśli[tableView sectionHeaderHeight];
?