Comment masquer la première section d'en-tête dans UITableView (regroupés style)

Que la conception de la table de vues à l'aide de l'regroupés style a changé considérablement avec iOS 7, je tiens à cacher (ou supprimer) le premier en-tête de section. Jusqu'à présent, je n'ai pas réussi à l'atteindre.

Quelque peu simplifié, mon code ressemble à ceci:

- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if (section == 0)
        return 0.0f;
    return 32.0f;
}

- (UIView*) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    if (section == 0) {
        UIView* view = [[UIView alloc] initWithFrame: CGRectMake(0.0f, 0.0f, 640.0f, 0.0f)];
        return view;
    }
    return nil;
}

- (NSString*) tableView:(UITableView *) tableView titleForHeaderInSection:(NSInteger)section
{
    if (section == 0) {
        return nil;
    } else {
        //return some string here ...
    }
}

Si je retourne une hauteur de 0, les deux autres méthodes ne sera jamais appelé à la section de l'index 0. Encore un vide en-tête de section est toujours établi avec la hauteur par défaut. (Dans iOS 6, les deux méthodes sont appelées. Toutefois, le résultat est le même.)

Si je retourne une valeur différente, la section d'en-tête obtient la hauteur spécifiée.

Si je retourne à 0,01, c'est presque correct. Cependant, quand je tourne sur la "Couleur Alignées Images" dans le simulateur, il marque l'ensemble de la vue de la table de cellules (ce qui semble être une conséquence logique).

Les réponses à la question UITableView: masquer l'en-tête de section vide semblent indiquer que certaines personnes ont réussi à cacher l'en-tête de section. Mais il pourrait s'appliquer à la plaine de style (au lieu de l'regroupés en un).

Le meilleur compromis jusqu'à présent, c'est de revenir à la hauteur de 0,5, résultant en un peu plus épais ligne en dessous de la barre de navigation. Toutefois, j'apprécierais si quelqu'un sait comment la première section d'en-tête peut être complètement caché.

Mise à jour

Selon caglar'analyse (https://stackoverflow.com/a/19056823/413337), le problème se pose uniquement si le tableau est contenu dans une manette de navigation.

  • Je n'ai pas eu la partie => if(section==0) return vue; return nil; c'est à dire le retour d'une vue lorsque ses la première section et de néant, sinon?
  • L'idée est de retour d'une vue avec une hauteur de 0 pour le premier article et le retour à néant pour toutes les autres sections de sorte que la vue de la table utilise la valeur par défaut de l'en-tête de la vue pour eux. Le néant en partie bien des œuvres; la vue de la table affiche un en-tête de ces sections. Mais la partie de la section 0 n'est pas pertinent parce que la méthode n'est jamais appelé avec section == 0.
  • Cette réponse semble être court et doux. stackoverflow.com/a/23955420/3965
InformationsquelleAutor Codo | 2013-09-27