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);
感谢 Ganzolo!
最佳答案
如果您使用 UITextField 来显示字体,您可能会得到这个错误的结果,因为 UITextField 有边距。
因此,在您的受限尺寸中,您应该移除宽度组件上 UITextField 的边距。
关于objective-c - sizeWithFont 在 UITextField 中返回错误的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9530942/