8
votes

Uilabel Text Alignement Droite

Je veux que mon texte soit aligner à droite.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:@"lisn"];
cell=[[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"lisn"] autorelease];
CGSize  textSize = { 210.0, 10000.0 };
CGSize size = [[gMessageArray objectAtIndex:indexPath.row] sizeWithFont:[UIFont systemFontOfSize:12] constrainedToSize:textSize lineBreakMode:UILineBreakModeWordWrap];

UILabel *lisnerMessage=[[[UILabel alloc] init] autorelease];
lisnerMessage.backgroundColor = [UIColor clearColor];
[lisnerMessage setFrame:CGRectMake(75 ,20,size.width + 5,size.height+2)];
lisnerMessage.numberOfLines=0;
lisnerMessage.textAlignment=UITextAlignmentRight;
lisnerMessage.text=[gMessageArray objectAtIndex:indexPath.row];
[cell.contentView addSubview:lisnerMessage];
return cell
}


4 commentaires

Ce n'est pas une réponse à votre question mais un commentaire sur la logique. Êtes-vous sûr de vouloir ajouter une étiquette supplémentaire à votre cellule chaque fois que la table est actualisée?


@PLIlipMills: Pour chaque cellule, j'ai un texte différent, pas de texte supplémentaire dans cette cellule


Sauf si il y a du code quelque part qui élimine les anciennes étiquettes de vos cellules, ce que vous avez posté, ajoutez toujours une étiquette de plus chaque fois qu'elle est appelée à un chemin d'index spécifique.


@PLIlipMills: Oui, qu'est-ce que j'essaie?


4 Réponses :


14
votes

Parce que vous utilisez Taillewithfont, puis définissez votre cadre à cette taille, votre texte est aligné à droite. Essayez d'ajouter une couleur de fond de gris clair à votre étiquette pour voir de quoi je parle. Votre étiquette doit être réglée sur la même taille que votre cellule de table et permettre au texte de couler à l'intérieur. Ensuite, il va aligner sur la droite.

Mise à jour avec échantillon xxx


8 commentaires

: Pouvez-vous s'il vous plaît élaborer ou mettre du code concernant votre réponse? Ce sera très utile pour moi


Oui, le truc avec la couleur de fond différente est une bonne. Cela aidera Alok Compréhension de ce qui se passe. L'utilisation de Taillewithfont est d'accord en principe, mais je n'utiliserais pas la taille. Avec le cadre du cadre. Utiliser [LisnerMessage SetFrame: CGRRCTMAKE (75, 20, Textsize.Width + 5, taille.Height + 2)]; au lieu.


J'ai édité votre code avec un exemple brut des changements nécessaires. Je ne l'ai pas testé en xcode mais c'est l'idée. Il suffit de reconstruire votre logique en conséquence.


@Ryanpoolos: Vous avez raison, le texte est aligné dans la cellule, mais je souhaite en fait que mon texte s'aligne dans ce cadre ce que j'ai utilisé.


Il sera aligné sur tout le cadre de votre étiquette.


@Ryanpoolos: En fait, lorsque j'utilise [LisnerMessage Setframe: CGrectMake (75, 20, taille.Width + 5, taille.Height + 2)]; Ensuite, le texte n'est pas aligné à droite. Mais quand j'utilise [LisnerMessage SetFrame: CGRRCTMAKE (75, 20.200.100)]; Ensuite, le texte est aligné à droite. Il y a donc un problème avec la taille.Width & Taille.Height ...


est taille.Width + 5 = 200 ? et taille.Height + 2 = 100 ?


Uitéxtalignmentdright est obsolète. UTILISATION: NSTEXTÉLIGNEMENTRIGHT



0
votes

Pourquoi ne faites-vous pas simplement l'étiquette dans l'interface Builder / Storyboard et sélectionnez l'option "Aligner droit"? Puis connectez-le comme une propriété nommée lisnermessage et lisnermessage.text = [GMESSAGEARRARAY ObjectAindex: indéniché.row]; Cela réduirait considérablement sur la quantité de code que vous écrivez et travaille définitivement.


0 commentaires

1
votes

Finalement j'ai réparer mon problème. Je faisais petite erreur xxx pré>

je viens de supprimer taille.Width code> et donne ma coordonnée spécifique 200 après que le texte soit aligné à droite. P>

[lisnerMessage setFrame:CGRectMake(75 ,20,200,size.height+2)];


0 commentaires

9
votes

Alignement droit pour l'étiquette

yourLabel.textAlignment = NSTextAlignmentRight;


0 commentaires