Sto cercando di risolvere questo problema, come nell'applicazione in cui sto lavorando Ho molti font, quindi la dimensione dell'etichetta viene calcolata dinamicamente quando l'utente cambia carattere.UILabel carattere corsivo ritaglio
Il problema che ho è che UILabel viene agganciato alla fine se di carattere è in corsivo, come nella foto sotto:
Questo è quello che ho provato finora:
- calcolo della larghezza con l'aiuto di CoreText e
CGSize CTFramesetterSuggestFrameSizeWithConstraints (CTFramesetterRef framesetter, CFRange stringRange, CFDictionaryRef frameAttributes, CGSize constraints, CFRange *fitRange);
- calcolo della larghezza con l'aiuto di NSAttributoString e
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options context:(NSStringDrawingContext *)context
- calcolo della larghezza con l'aiuto di NSString e
- (CGSize)sizeWithAttributes:(NSDictionary<NSString *,id> *)attrs
- utilizzando Temp UITextView e
sizeThatFits´ and
fitToSize`
Come c'è un sacco di tipi di carattere in applicazione ho bisogno di impostare la larghezza di etichetta in modo dinamico, così sottoclassi di UILabel e l'aggiunta di alcuni punti in più su drawFrameInRect
non funziona.
Ecco il codice di esempio Github.
Qualsiasi aiuto/consiglio è apprezzato.
Vi siete esplorato questo: [la visualizzazione label] .clipsToBounds = NO; –
Si dovrebbe assolutamente guardare nel caricamento automatico. –
Ricordo di aver riscontrato questo problema da iOS 5 con il corsivo. Soprattutto quando si utilizza l'allineamento destro. Lo stavo risolvendo aggiungendo uno spazio alla fine del testo. È una soluzione stupida ma funziona. – Sulthan