2009-02-23 6 views
1

Je suis novice en codage Objective-C et iPhone et j'espérais que quelqu'un puisse m'aider.Options de mise en page dans UITableView (iPhone)? Ou étendre UIScrollView?

Fondamentalement, je veux un tableau déroulant qui affiche un nom et une quantité de cet élément. Par exemple: pommes ......... 2
Oranges ...... 4
bananes ...... 5

Je veux que le nom soit justifié à gauche et la nombre à être justifié à droite.

Y a-t-il un moyen de le faire avec un UITableView ou devrais-je étendre UIScrollView?

Merci d'avance.

Répondre

3

Définissez cell.text sur "Pommes". Créez ensuite une nouvelle vue UILabel avec le texte "2" et attribuez-la à cell.accessoryView.

Le texte est toujours sur la gauche et les vues accessoires sont toujours sur la droite. En option, une image UII en cell.image sera affichée à gauche du texte de la cellule si vous choisissez d'en ajouter une.

Si vous avez une disposition de cellule plus compliquée que cela, vous devez ajouter des sous-vues à votre cellule manuellement.

+0

Je pense que "un noyau de mise en page cellulaire compliqué" était censé être "une mise en page cellulaire PLUS compliquée" :) –

1

Une option pas trop difficile est de sous-classer UITableViewCell avec une étiquette pour le texte et une étiquette pour le numéro, puis il suffit de définir les valeurs de l'étiquette. Si vous voulez le ... que vous avez montré alors vous pourriez probablement utiliser un UITableViewCell standard et écrire du code pour alimenter le texte de la cellule qui a été pré-modifié pour tenir dans l'espace alloué.

0

Vous pouvez simplement utiliser un autre type de cellule, qui est déjà fourni par Apple et changer la couleur du detailTextLabel:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CustomCellIdentifier = @"Cell"; 
    UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CustomCellIdentifier]; 
    cell.textLabel.text = @"Apples"; 
    cell.detailTextLabel.text = @"2"; 
    cell.detailTextLabel.textColor = [UIColor blackColor]; 
    return cell; 
} 

Pas besoin de se soucier de subclassing ou l'ajout d'étiquettes sur votre propre.