Frage

Ich will die Höhe des ersten Headers in meine UITableView setzen. Für die anderen Header möchte ich ihnen die Standardhöhe bleiben. Welchen Wert / Konstante kann ich setzen anstelle von „someDefaultHeight“ im Code unten?

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if (section == 0)
        return kFirstHeaderHeight;

    return someDefaultHeight;
}

Danke

War es hilfreich?

Lösung

In IOS 5.0 ab können Sie UITableViewAutomaticDimension in den meisten der Delegatmethoden zurückzukehren. Sein am unteren Rand der Dokumentationsseite

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if(section == CUSTOM_SECTION)
    {
        return CUSTOM_VALUE;
    }
    return UITableViewAutomaticDimension;
}

Andere Tipps

Von den Standardeinstellungen in meiner app Überprüfung sieht es aus wie eine gruppierte Tabelle der Standard eine Höhe von 22 ist und für einen nicht gruppierten Tabelle der Standard ist eine Höhe von 10.

Wenn Sie den Wert der Eigenschaft sectionHeaderHeight auf Ihrem Tableview überprüfen, die Ihnen sagen sollte.

Eigentlich den Trick:)

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if(section == 0)
        return kFirstSectionHeaderHeight;
    return [self sectionHeaderHeight];
}

Aus Gründen der Vollständigkeit halber: in iOS7 + der Höhe für gruppierte Stil Abschnittsüberschriften ist 55.5 für die erste und 38 für Header folgen. (Gemessen mit DCIntrospect)

Ich bin mir nicht sicher, was die richtige Antwort ist, aber weder 10 oder 22 erscheint in iOS 5. die richtige Höhe für eine gruppierte Tabelle Ansicht zu sein, ich bin mit 44, basierend auf this Frage, und es zumindest erscheint in etwa die richtige Höhe.

die Standardhöhe zu erhalten, lassen Sie super damit umgehen:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if (section == 0)
        return kFirstHeaderHeight;

    return [super tableView:tableView heightForHeaderInSection:section];
}

Für das schnelle 4.2 sollten Sie UITableView.automaticDimension zurückkehren

Dies sollte den Trick

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(indexPath.section == CUSTOM_SECTION)
    {
        return CUSTOM_VALUE;
    }
    return [tableView rowHeight];
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top