2010-05-18 6 views

Répondre

12

Vous pouvez définir une cellule personnalisée dans IB, qui contiendra 3 étiquettes et en fonction:

- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

     static NSString *DetailCellIdentifier = @"DetailCell"; 

     UITableViewCell *cell = [aTableView dequeueReusableCellWithIdentifier:DetailCellIdentifier]; 

     if (cell == nil) { 
      NSArray *cellObjects = [[NSBundle mainBundle] loadNibNamed:@"DetailCell" owner:self options:nil]; 
      cell = (UITableViewCell*) [cellObjects objectAtIndex:0]; 
     } 

     // setup your cell 
    } 

lorsque vous définissez la cellule IB donnent chaque étiquette une étiquette, alors quand vous avez besoin de mettre un texte là, vous pouvez le récupérer par l'étiquette comme ceci:

 label = (UILabel *)[cell viewWithTag:NAME_TAG]; 
     label.text = myObject.name; 

et répétez ceci avec d'autres 2 étiquettes. L'étiquette est un nombre unique.

Mettez ce code au lieu // configurer votre commentaire cellulaire

+0

J'ai créé une sous-classe UIView personnalisée nommée "DetailCell" et j'y ai ajouté trois étiquettes. Ajoutez le code écrit ci-dessus sur la tableview de Sous-classe de détail de l'employé UIView.L'exécuter, il n'affiche aucune étiquette sur tabelView. –

+1

Si vous le créez dans IB, vous êtes censé créer un UITableViewCell, pas un UIView.Voir ce lien pour créer des cellules personnalisées en détail: http://developer.apple.com/iphone/bibliothèque/documentation/UserExperience/Conceptuel/TableView_iPhone/TableViewCells/TableViewCells.html –

0

Créer une sous-classe personnalisée UIView contenant, par exemple, trois éléments UILabel comme subviews. Définissez ensuite la propriété contentView de la cellule sur cette vue personnalisée.

0

ajouter trois labels comme sous viewsinto de content.then de cellules uitableview attribuer des valeurs apprrpriate à ce par exemple:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

static NSString *CellIdentifier = @"Cell"; 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; 


} 

//frame should be set accordingly(means should be framed accordingly). 

UILabel *l1=[[UIImageView alloc]initWithFrame:CGRectMake(5, 5, 100,100)]; 

UILabel *l2=[[UILabel alloc]initWithFrame:CGRectMake(110,10,100,80)]; 
UILabel *l3=[[UILabel alloc]initWithFrame:CGRectMake(115,60,100,50)]; 

[cell.contentView addSubview:l1]; 
[cell.contentView addSubview:l2]; 
[cell.contentView addSubview:l3]; 
return cell; 
} 
+0

ce n'est pas une bonne approche pour faire la chose requise voir la réponse ci-dessus qui est la bonne approche pour faire les choses faites –

2

J'ai créé UIGridView. Je crois que votre problème peut être résolu en utilisant la même technique.

Vous pouvez apprendre le code source de UIGridView. Le code est vraiment court.

+0

Compiler sur iPhone 4 - vraiment laggs ... –

+0

Combien de cellules avez-vous? – Tanin

+0

Nombre de cellules par défaut - 4 colonnes x 9 lignes. Juste compilé l'échantillon téléchargé projekt à l'appareil, et il est vraiment retardé. –

14

Je pense que la méthode correcte est UICollectionView. Commencé avec UITableView et finalement échoué à un certain point en raison d'un comportement inattendu, tout en essayant d'implémenter le défilement gauche-droite et haut-bas.

S'il vous plaît vérifier ce post impressionnant pour une solution complète et mise à jour: http://www.brightec.co.uk/blog/uicollectionview-using-horizontal-and-vertical-scrolling-sticky-rows-and-columns

Le résultat sera comme ceci:

enter image description here

+1

Beaucoup mieux que les hacks multi-label à coup sûr – jjxtra

Questions connexes