objective-c - 如何使 OHAttributedLabel 的高度与内容高度成比例?

标签 objective-c ios cocoa-touch nsattributedstring

我使用一个名为 demoLbl 的 OHAttributedLabel 来显示带有格式化区域的文本。这个标签是用 Interface Builder 布置的,并连接到我的 ViewController 中的一个属性。将 attributedText 设置为标签后,我希望所有文本都显示在标签中。
如果我不调整标签的大小,那么标签末尾的文本将被裁剪,因此其余文本将丢失。

如果我使用 [demoLbl sizeToFit];然后标签的高度大于或小于文本的高度(大约 10 点,随文本的长度而变化)因此在我的 View 底部(滚动后)给我空白区域加上标签的宽度增加了大约 2 点。

如果我在将原始文本 (NSString) 放入 NSAttributedString 并将其添加到标签的 attributedText 属性之前计算原始文本 (NSString) 的高度,那么计算出的高度对于将其设置为标签的高度来说太小了。

是否有我可以应用的 hack 或技巧,以便根据 NSAttributedString 的高度调整标签的高度?

PS:更具体地说,我想添加 OHAttributedLabel 作为标签,但我还不允许这样做。

最佳答案

我是 OHattributedLabel 的作者。

我最近对尺寸的计算做了一些修正。请检查一下,它可能会解决您的问题。

我还在 NSAttributedString+Attributes.h 中添加了一个名为 sizeConstrainedToSize:fitRange: 的方法,它返回给定 NSAttributedString 的 CGSize(与 UIKit 的 sizeWithFont:constrainedToSize: 有效,但对于属性字符串和 CoreText 而不是普通的 UIKit) 实际上 OHAttributedLabel 的 sizeThatFits: 现在自己调用这个方法。

关于objective-c - 如何使 OHAttributedLabel 的高度与内容高度成比例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6622519/

相关文章:

ios - 每个表格 View 单元格一个计时器

objective-c - PyObjC:如何删除现有的 Objective-C 类

ios - 如何使用自动布局在 ios 中以编程方式在 UIview 上添加 UIbutton

iphone - ifdef语法不起作用

ios - MonoTouch <--> 静态库异常 : Could not load NIB in bundle

ios - Xcode Workspace - 未从框架开发容器中找到导入

ios - 如何将触摸 socket 添加到自定义 UIView?

ios - 核心数据拉动变化

ios - 移动 subview 时,如何将其 subview 保留在其父 View 中的同一位置?

cocoa - NSDecimalNumber 的 ceilf 和 Floorf 等效方法