sizeWithFont возвращает неправильную высоту в UITextField - PullRequest
1 голос
/ 02 марта 2012
NSString *message = @"Can be a short string or a very long string";

CGSize rowSize = [message sizeWithFont:[UIFont fontWithName:@"Helvetica" size:16.0] constrainedToSize:CGSizeMake(250, 1000) lineBreakMode:UILineBreakModeWordWrap];

CGSize rowSizeBold = [message sizeWithFont:[UIFont fontWithName:@"Helvetica-Bold" size:16.0] constrainedToSize:CGSizeMake(250, 1000) lineBreakMode:UILineBreakModeWordWrap];

(rowSize.height и rowSizeBold.height всегда равны) - это было неправильно - спасибо jaydee3

возвращаемая высота неверна и обрезает текст.

Есть идеи?

решение: (работает для Helvetica, Helvetica-Bold и любого другого шрифта)

Уменьшение ширины rowSize на полях (15) возвращает правильную высоту для UITextField.

NSString *message = @"Can be a short string or a very long string";

CGSize rowSize = [message sizeWithFont:[UIFont fontWithName:@"Helvetica-Bold" size:16.0] constrainedToSize:CGSizeMake(235, 1000) lineBreakMode:UILineBreakModeWordWrap];

UITextField *messageTextView.frame = CGRectMake(60, 10, 250, rowSize.height);

спасибо Ганзоло!

Ответы [ 2 ]

0 голосов
/ 02 марта 2012

Просто скопируйте и вставьте свой код.Все хорошо:

resulting sizes

0 голосов
/ 02 марта 2012

Если вы используете UITextField для отображения шрифта, вы, вероятно, получите этот неверный результат, потому что UITextField имеет поле.

Таким образом, в вашем ограниченном размере вы должны удалить поле UITextField для компонента width.1003 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...