Cómo llegar altura de una línea en UITextView
Como se muestra en el diagrama anterior ... la lineHeight
es la altura de la caja de color naranja. ¿Cómo puedo obtener la altura de la caja azul (es decir, lineHeight
+ altura del espacio entre líneas)? ¡Gracias!
ACTUALIZACIÓN: Encontré que el lineHeight
se comporta de manera diferente depende de los caracteres en el contenido. Si el contenido está todo en inglés, el lineHeight es corrent (21, por ejemplo, en el UITextView predeterminado). Sin embargo, cuando el contenido se mezcla con caracteres chinos, la UIFont lineHeight
todavía se registra como 21 mientras que el self.textView.contentSize.height
se incrementa de manera diferente:
English - adding 21 points for each line
Chinese - adding 24 points for each line
ACTUALIZACIÓN (sizeWithFont:
)
CGSize constrainedRect = CGSizeMake(1000, 1000);
CGSize rectEnglish = [@"hello\nworld" sizeWithFont:self.textView.font constrainedToSize:constrainedRect lineBreakMode:UILineBreakModeWordWrap];
NSLog(@"width: %.2f height: %.2f", rectEnglish.width, rectEnglish.height);
CGSize rectChinese = [@"你\n好嗎" sizeWithFont:self.textView.font constrainedToSize:constrainedRect lineBreakMode:UILineBreakModeWordWrap];
NSLog(@"width: %.2f height: %.2f", rectChinese.width, rectChinese.height);
de salida:
width: 41.00 height: 42.00
width: 34.00 height: 42.00
Tenga en cuenta que 'UIFont.lineHeight' es iOS4.0 + solamente. –
que es una propiedad de solo lectura – Puran
trabajo para mí !!!! – slboat