sizeWithFont在UITextField中返回错误的高度

时间:2012-03-02 09:37:10

标签: objective-c ios uitextfield

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总是相等) - 这不对 - thx to jaydee3

返回的高度错误并剪切文字。

有什么想法吗?

解决方案:(适用于Helvetica,Helvetica-Bold和任何其他字体)

使用margin(15)缩小rowSize的宽度会返回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);

thx to Ganzolo!

2 个答案:

答案 0 :(得分:0)

如果你使用UITextField显示字体,你可能会得到这个错误的结果,因为UITextField有余量。

因此,在您的约束大小中,您应该删除宽度组件上UITextField的边距。

答案 1 :(得分:0)

只需复制并粘贴您的代码即可。一切都很好:

resulting sizes