如何从CGSIZE为UITextView获取NSAttributedString?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (19)

我正在创建一个使用UITextView和NSAttributedString的阅读器应用程序,我需要将整个归因字符串分成更少量的归因字符串以启用页。

我有计算给定属性字符串的帧大小的方法。

        CGRect rect = [attrString boundingRectWithSize:CGSizeMake(768, 10000) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading context:nil];

但我需要为(768,1024)ContentSize获取attributeString。

我已经使用过,但归属的String没有正确划分,因为它包含NSTextAttachmentHTML

CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((CFAttributedStringRef)delegate.attributedString);

我如何计算这个?它需要快速并需要占用少量内存。

提问于
用户回答回答于

可以使用UITextView函数sizeThatFits:

[textView sizeThatFits:CGSizeMake(768, 1024)]
用户回答回答于

如果你想知道UITextView的大小,你不应该询问文本的边界矩形,因为它不是视图的大小。 UITextView包含填充,你需要考虑到这一点。

最好和更简单的方法是在添加文本后立即在文本视图上调用sizeToFit。稍后请求UItextView框架。

扫码关注云+社区