objective-c - sizeWithFont 在 UITextField 中返回错误的高度

标签 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 总是相等的)——这是不对的——感谢 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/

相关文章:

swift - 使用委托(delegate)更改带有按钮的 tableViewCell 内 UITextField 的值

ios - 我想我在分配 segmentcontrol 时犯了一些错误..我收到一个错误 [无法识别的选择器发送到实例]

ios - 在没有动画的 UISearchController 上强制结束编辑

iOS - @IBDesignable UITextField 子类在 IB 中正确显示,但在设备上不正确

ios - UITextField 不会关闭

ios - FIPS_mode_set失败:指纹不匹配

ios - CHCSV 解析器错误 : No known class method for selector 'arrayWithContentsOfCSVFile:encoding:error:'

ios - 用于高效排队线程安全回调的示例 Objective-C 代码

ios - 仅为目标 V​​iewController 设置导航栏

swift - 在动画背景颜色时选择 UITextField