2009-07-19 6 views
1

hé, nous avons un UITableView à l'intérieur duquel nous avons (évidemment) de nombreux UITableViewCells. Nous devons mettre en œuvre une action afin que lorsque l'utilisateur touche la cellule, la cellule se développe et affiche plus d'informations. Si l'utilisateur touche à nouveau la cellule, il revient à la taille d'origine.iphone dev: redimensionner dynamiquement UITableView

Nous avons pu mettre en œuvre en modifiant la hauteur du cadre de la cellule comme ceci:

CGRect newFrameTemp = self.frame; 
newFrameTemp.size.height +=textHeight; 
self.frame = newFrameTemp; 

et se déplaçant aussi toutes les autres cellules textHeight pixels vers le bas. (Et aussi changé la taille de la table elle-même)

Cela a semblé fonctionner, seulement que les événements «tactiles» ne se sont pas déplacés ensemble avec les cellules de sorte que si je veux toucher la cellule suivante, j'ai vraiment besoin de toucher le milieu de la cellule que nous venons «ouvert»

des indices sur nous faisons mal?

Répondre

1

peut-être essayer d'ajuster la hauteur selon la méthode UITableViewDelegate:

– tableView:heightForRowAtIndexPath: 

http://developer.apple.com/iphone/library/documentation/uikit/reference/UITableViewDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intf/UITableViewDelegate

Cela peut ajuster les zones touchées correctement pour vous.

Edit: Je viens couru à travers ce lien qui pourrait être pertinente: http://www.cimgf.com/2009/09/23/uitableviewcell-dynamic-height/

+0

Hey Ben, nous avons effectivement avons essayé et ça n'a pas fonctionné, mais nous allons essayer à nouveau .. –

+0

Hé bien, non. Ça ne fonctionne pas. heightForRowAtIndexPath est appelée uniquement lors de la création de la table. Ce que nous faisons est de changer la hauteur de la cellule dynamiquement lorsque l'utilisateur la touche. –

+1

Sûrement tableView: heightForRowAtIndexPath: est appelé lorsque vous rechargez la vue de table? Ajuster la hauteur dans cette méthode puis appeler [tableView reloadData] peut-être? –

Questions connexes