J'ai ajouté une vue de table et a glissé une cellule de vue de la table dans celle-ci.
Dans le panneau Utilitaires, j'ai changé le style pour sous-titre.
J'ai également essayé de le modifier en code: L'alignement central ne fonctionne pas! P> J'ai essayé d'ajouter un objet d'étiquette à la cellule pour avoir un solution de contournement. Mais je ne sais pas comment y accéder. Même si je l'ai assigné un point de vente, cela ne fonctionnerait pas: p> Que dois-je faire?
Toute suggestion sur la façon dont je fais fonctionne la voie habituelle, sans ajouter une étiquette à la cellule ou quelque chose comme ça? p> p>
6 Réponses :
pour le utableviewcellstylesubtitle code> L'alignement de texte ne peut pas être modifié
Vous devrez mettre une étiquette et ajouter votre alignement,
Pour ce faire, vous pouvez utiliser ce code
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
UILabel *myLabel;
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
myLabel = [[UILabel alloc] initWithFrame:Your_Frame];
//Add a tag to it in order to find it later
myLabel.tag = 111;
//Align it
myLabel.textAlignment= UITextAlignmentCenter;
[cell.contentView addSubview:myLabel];
}
myLabel = (UILabel*)[cell.contentView viewWithTag:111];
//Add text to it
myLabel.text = [myArray objectAtIndex:indexPath.row];
return cell;
}
Merci, belle petite référence.
Veuillez noter que uitéxtalignment code> est obsolète depuis iOS6. Utilisez
NSTextalignment code> à la place.
Je pense que la raison est que: la largeur de la TextLabel dépend de la longueur du texte, si le texte est trop long pour afficher tout dans une ligne de signal et que vous avez déjà défini le mode de pause de ligne et définir le nombre de lignes sur 0 , vous constaterez que l'alignement du texte sera fonctionnel. } P> P>
Le problème avec le style de sous-titres est qu'il fait un [Self.TextLabel Sizetofit] lorsqu'il s'installe. Lorsque vous centrez dans un conteneur qui est la taille parfaite du contenu, rien ne change.
Essayez ceci. Dans une sous-classe d'UitailViewCell, définissez votre textalignement et utilisez-le comme votre code ParetouTouSubviews: P>
- (void)layoutSubviews { [super layoutSubviews]; { CGRect frame = self.textLabel.frame; frame.size.width = CGRectGetWidth(self.frame); frame.origin.x = 0.0; self.textLabel.frame = frame; } { CGRect frame = self.detailTextLabel.frame; frame.size.width = CGRectGetWidth(self.frame); frame.origin.x = 0.0; self.detailTextLabel.frame = frame; } }
Je pense que le réglage du cadre fonctionnera. J'avais le style d'UitailViewcellstylevalue2, mais si j'ai un peu de texte long dans TextLabel, il devient tronqué à la queue et à la textilité ne fonctionne pas ici, alors pensé d'augmenter la largeur de texte de la largeur.
Il est impossible de changer de cadre pour textlabel em> et détaillantTextLabel em> dans uitatifviewcell em>
DROITE EN CELLFORDOORTINDEXPATH: méthode. Si vous ne voulez pas sous-classer votre cellule, vous pouvez implémenter un petit piratage en utilisant P> avec un délai de zéro pour changer la géométrie juste après < EM> par défaut layoutsUbViews em>: p> Voir les détails sur ici a> p> p>
hi Veuillez ajouter ce qui suit au lieu de votre code,
cell.textLabel.textAlignment = NSTextAlignmentCenter; cell.detailTextLabel.textAlignment = NSTextAlignmentCenter;
Juste un FYI, utilisez NstextSextalmentCenter. UitextalIgnmentCenter est obsolète.