2009-06-19 6 views
0

J'aimerais ajouter des en-têtes de section aux sections de ma vue groupée, mais je voudrais qu'elles apparaissent transparentes (voir image). La valeur par défaut, comme nous le savons tous, est arrondie aux coins supérieurs de la première rangée d'une cellule de vue groupée afin qu'elle finisse par ressembler à de la merde lorsque vous les fusionnez.Best (Any) façon de combiner l'en-tête de la section tableview au-dessus d'une tableview groupée

N'importe quelle façon de spécifier quand indexPath.row = 0 que UITableViewCell doit utiliser le style de ligne "middle" ou quelque chose comme ça?

Si non, quelles sont mes options? Je suppose que je pourrais gratter l'en-tête de section et utiliser la ligne 0 comme un quasi-entête puis pousser mes données de tableau +1 pour remplir le reste de la table? Je préfère ne pas rouler le mien à partir de zéro ... si possible.

Sample Table http://img35.imageshack.us/img35/8181/sampletable.png

Edit:

"Merde" ressemble à ceci:

alt text http://img25.imageshack.us/img25/9748/crapsection.png

Répondre

1
  1. Ne pas faire ce que vous faites, il est contre HIG

  2. Ok, ok, je vais vous dire comment faites-le:

Vous allez vouloir faire vos propres vues de fond de cellule. Le groupe par défaut n'est pas ce que vous voulez. Lorsqu'une tableview vous demande une cellule, définissez backgroundView et selectedBackgroundView sur quelque chose qui semble approprié pour sa place dans la tableview.

Habituellement, cela signifie un UIImageView avec l'image appropriée, même si vous pouvez aller sauvage ici avec une vue personnalisée, mais il y a des pièges.

Donc dans votre cas, vous feriez

if (indexPath.row > sectionRowCount - 1) { 
    //Not the last row 
    //Put in the middle background 
} else { 
    //Put in the end background 
} 

Ensuite, vous aurez envie d'un en-tête de la section de tableau personnalisé, mais c'est assez facile.

Dans votre cas, vous n'aurez probablement pas à vous soucier de la présence d'une seule ligne, ce qui rend les choses encore plus faciles.

1

Jetez un oeil à ce tutoriel ici: cocoa with love fondamentalement ce dont vous avez besoin est de 3 images différentes. Un pour la rangée du haut, un pour le bas et un troisième pour les rangées du milieu.

+0

Ouais, c'est ce que j'avais peur de ... Espérait que 3.0 avait des trucs cachés pour nous ... – Meltemi

0

Vous ne pouvez pas utiliser l'en-tête de section, mais utiliser une cellule personnalisée comme première cellule de la section. Donc, quand ([ligne indexPath] == 0), renvoyez une cellule personnalisée qui est "l'en-tête", puis renvoyez les cellules "régulières" (décalées d'une ligne) pour le reste. Vous devrez également modifier la fonction numberOfRowsInSection pour renvoyer +1.

Questions connexes