Ho bisogno di calcolare la dimensione del fotogramma per il testo che potrebbe essere in inglese/emoji/altre lingue.
Il modo in cui ho fatto è stato:Calcola altezza UILabel per il testo con diverse lingue ed emoji in Objective-C
NSMutableParagraphStyle *style = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
[style setLineBreakMode:NSLineBreakByWordWrapping];
NSDictionary *attributes = @{NSFontAttributeName: [UIFont systemFontOfSize:fontSize], NSParagraphStyleAttributeName: style};
CGSize rect = [text boundingRectWithSize:CGSizeMake(containerWidth, CGFLOAT_MAX)
options:NSStringDrawingUsesLineFragmentOrigin| NSStringDrawingUsesFontLeading
attributes:attributes
context:nil].size;
Funziona bene finché io non uso emoji. Sembra che l'altezza della linea emoji/la dimensione del carattere sia diversa dai normali caratteri.
ho visto che la gente ha cercato di risolvere in modi diversi, quali: http://youbbe.xyz/issue/4987325/ios-emoji-messed-up-in-uilabel
questa soluzione funziona per emoji, ma non per l'inglese/altri tipi di carattere.
Vedere l'esempio di immagine:
Come si può vedere, solo il testo viene calcolato bene (prima voce), ma di testo + emoji non è calcualted correttamente (secondo riquadro).
Sono davvero sorpreso che non ci sia una soluzione facile per questo problema. Il tuo aiuto è molto apprezzato.
provare Con Di seguito la funzione, ma è necessario utilizzare Invia testo attribuito e la larghezza del TextVew e la funzione restituisce un'altezza di TextView '- (CGFloat) textViewHeightForAttributedText: (NSAttributedString *) Testo andWidth: (CGFloat) larghezza { UITextView * textView = [[UITextView alloc] init]; [textView setAttributedText: text]; Dimensioni CGSize = [dimensione del testo ViewThatFits: CGSizeMake (larghezza, FLT_MAX)]; //textView.textContainerInset = UIEdgeInsetsZero; return size.height + 10; } ' – Vvk
controlla questo .. [articolo] (http://www.appcoda.com/self-sizing-cells/) – mustafa96m
Che cos'è' containerWidth'? Dove lo stai ambientando? Che aspetto ha il codice in realtà imposta la cornice dell'etichetta? – beyowulf