objective-c - NSAttributedString 的 boundingRectWit

我正在尝试获取属性字符串的矩形,但 boundingRectWithSize 调用不尊重我传入的大小,并返回一个具有单行高度而不是大高度的矩形(它是一个长字符串) .我已经通过传入一个非常大的高度值和下面的代码中的 0 进行了实验,但是返回的矩形总是相同的。

CGRect paragraphRect = [attributedText boundingRectWithSize:CGSizeMake(300,0.0)
  options:NSStringDrawingUsesDeviceMetrics
  context:nil];

这是坏了,还是我需要做其他事情才能让它返回一个用于包装文本的矩形?

最佳答案

您似乎没有提供正确的选项。对于包装标签,至少提供:

CGRect paragraphRect =
  [attributedText boundingRectWithSize:CGSizeMake(300.f, CGFLOAT_MAX)
  options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading)
  context:nil];

注意:如果原始文本宽度在300.f以下不会换行,所以请确保绑定(bind)大小正确,否则仍然会得到错误的结果。

关于objective-c - NSAttributedString 的 boundingRectWithSize 返回错误的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13621084/

相关文章:

ios - 如何使用 AVAudioRecorder 在 iPhone 上录制音频?

iphone - 在 UIViewController 上显示 clearColor UIViewC

iphone - 静态库中的 Objective-C 类别

objective-c - Objective-C 中的 "unrecognized selecto

objective-c - 每个核心数据关系都必须有一个逆关系吗?

iphone - @synthesize 到底是做什么的?

ios - 从 UITableView 单元格内的 url 异步加载图像 - 滚动时图像更改为错误图

objective-c - Xcode 5 : Code signing entitlement e

objective-c - 使用 Objective-C 在 iOS 9 中将状态栏文本颜色更改为浅

objective-c - NSLog iPhone中Objective-C的方法名