2010-05-04 3 views
1

Je sais qu'il est possible de définir la hauteur de toutes les lignes dans un UITable mais il est possible de définir une ligne pour être plus grande que les autres. Par exemple, lorsque l'utilisateur touche la cellule avec 2 doigts, je veux que la cellule se développe et affiche une description. Mais seulement cette cellule. Est-ce possible sans chevaucher les cellules en dessous?Une table vue cell/row plus grande que les autres?

Répondre

1

Utilisez la méthode UITableViewDelegate heightForRowAtIndexPath

Dites que votre modèle de données objets stockés qui ont une propriété height:

- (void) changeHeightForRowAtIndexPath: (NSIndexPath *) indexPath (NSInteger) height { 
    [ myData objectAtIndex: indexPath.row ].height = height; 
    [ myTableView reloadRowsAtIndexPaths: [ NSArray arrayWithObject: indexPath ] withRowAnimation: UITableViewRowAnimationNone ]; 
} 
+0

Mais je ne serai pas en mesure de changer la hauteur de la ligne quand j'aime? Uniquement lorsque le TableViewController "le demande" –

+1

Appelez 'reloadRowsAtIndexPaths' avec un seul élément' NSArray'. –

+0

Vous souhaitez conserver la hauteur de la cellule? –

1
+0

Il demande une animation qui change dynamiquement la hauteur. heightForRowAtIndexPath est exécuté avant la configuration de la table et ne changera pas la hauteur avec l'interaction de l'utilisateur. –

+0

Oui ... Vous avez raison. Ma réponse ne couvre pas ses besoins. –

Questions connexes