2011-03-10 3 views
0

Je suis vraiment nouveau sur Xcode et Objective C mais je n'arrive pas à trouver un tutoriel sur une simple table que j'aimerais créer. Je voudrais avoir une table (style groupé) avec seulement trois lignes mais deux colonnes. La colonne A aurait une étiquette (comme «Nom:») et la colonne B aurait les données réelles («Jason»).Vue de table avec deux "colonnes"?

Je ne peux pas sembler trouver comment faire ceci. À moins que je ne cherche que la mauvaise chose? Espérait que quelqu'un pourrait m'aider sur la façon de le faire ou me diriger dans la bonne direction.

Merci!

+0

depuis que vous êtes nouveau sur iOS Je recommanderais de regarder les vidéos de cours CS193P de Stanford sur Itunes U http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=384233225 –

Répondre

7

Vous ne voulez pas utiliser une table avec 2 colonnes. Ils ne sont pas utilisés dans iOS.
Vous devez utiliser un UITableViewCell avec un style UITableViewCellStyleValue2. Et vous voulez définir @"Name" comme textLabel.text et @"Jason" comme detailTextLabel.text.


UITableView screenshot

Vous devez changer le tableView:cellForRowAtIndexPath: un peu.

// Customize the appearance of table view cells. 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:CellIdentifier] autorelease]; 
    } 
    cell.textLabel.text = @"Name"; 
    cell.detailTextLabel.text = @"Jason"; 
    return cell; 
} 
+0

Remerciements vous tellement! Est-ce que je fais même glisser dans une vue de table dans IB ou juste une cellule de vue de table? Aussi, je ne vois pas comment vous l'avez limité à trois lignes? J'apprécie vraiment l'aide!! – Jason

+0

Prenez simplement l'un des didacticiels UITableView que vous pouvez trouver. TableViews et ses méthodes DataSource sont un peu trop compliquées pour les expliquer dans une réponse SO. Mais il existe de nombreux tutoriels et comme la plupart d'entre eux sont pour les débutants, vous n'aurez pas de gros problèmes. Si vous avez des questions n'hésitez pas à revenir à SO et poser une autre question –

1

Vous ne pouvez pas "réellement" créer de colonnes dans UITableView, mais vous pouvez utiliser des styles de cellule pour obtenir un effet similaire.

Vous pouvez utiliser le style UITableViewCellStyleValue1 pour obtenir ce que vous dites Voici un exemple:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
static NSString *CellIdentifier = @"Cell"; 

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

cell.textLabel.text = @"Name"; 
cell.detailTextLabel.text = @"Jason"; 


return cell; 
} 

Voici un exemple de ce qu'il ressemble à: http://blog.blackwhale.at/wp-content/uploads/2009/06/Bild-3.png

Ou, mais plus compliqué si vous êtes nouveau sur ObjectiveC, vous pouvez créer votre propre CellView dans un XIB et l'utiliser dans votre code: http://www.bdunagan.com/2009/06/28/custom-uitableviewcell-from-a-xib-in-interface-builder/

Edi t: Désolé, Fluchtpunkt a été plus rapide que moi;)

+0

Merci Ingham!Le lien vers l'exemple est précisément ce que je cherche. Je suis juste confus sur ce que je dois faire dans Interface Builder et est-ce que je répète essentiellement votre code d'échantillon pour chaque cellule que j'aimerais ajouter? – Jason

+0

@Jason vous ne devriez pas lire le tutoriel personnalisé uitableviewcell pour l'instant. Avant de creuser dans des cellules personnalisées, vous devriez jouer quelques jours avec des cellules standard. –

1

peut-être vous devriez ajouter une étiquette sur la cellule du tableau, et donner une bordure

comme ceci:

// ------ ------------- première colonne ----------------------------------- --------------------------------

UILabel * label1 = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 312, 43)]; 
[label1 setFont:[UIFont fontWithName:@"arial" size:18]]; 
[label1 setTextColor:[UIColor blackColor]]; 
label1.backgroundColor = [UIColor clearColor]; 
label1.layer.borderColor=[[UIColor lightGrayColor]CGColor]; 
label1.layer.borderWidth= 1.0f; 
label1.numberOfLines = 0; 
label1.text = [NSString stringWithFormat:@" %@",[[yourArray objectAtIndex:indexPath.row]objectForKey:@"xxxxx"]]; 
[cell.contentView addSubview:label1]; 

// --------- ---------- deuxième colonne -------------------------------------- -----------------------------

UILabel * label2 = [[UILabel alloc]initWithFrame:CGRectMake(314, 0, 125, 43)]; 
[label2 setFont:[UIFont fontWithName:@"arial" size:18]]; 
[label2 setTextColor:[UIColor blackColor]]; 
label2.textAlignment = NSTextAlignmentCenter; 
label2.backgroundColor = [UIColor clearColor]; 
label2.layer.borderColor=[[UIColor lightGrayColor]CGColor]; 
label2.layer.borderWidth= 1.0f; 
label2.text = [NSString stringWithFormat:@"%@",[[yourArray objectAtIndex:indexPath.row]objectForKey:@"xxxxxx"]]; 
[cell.contentView addSubview:label2]; 
Questions connexes