0

底线是我正在尝试重现 iMessage 具有的 UI。对于标签:这种类型的文本的特殊填充使我创建了一个自定义 UILabel。这是drawTextInRect下的代码:

[super drawTextInRect:UIEdgeInsetsInsetRect(rect, UIEdgeInsetsMake(0, 15.0, 5.0, 15.0))];

暂时不神秘。

当我的单元格(包含该标签的单元格必须计算高度)时,问题就来了。Label 在标签上获得舍入效果,如下所示:

cell.message.layer.cornerRadius = 18;
[cell.message sizeToFit];

显然我无法获得该标签的正确高度和宽度。我正在使用 sizeToFit,然后我使用“ sizeWithFont: ”(在 iOS 7 中已弃用)和“ boundingRectWithSize: ”来测量可能的尺寸。文本可以正确显示的唯一方法是在计算完成后手动将未确定的大小添加到高度和宽度。

那么我能得到的最好的就是一个看起来不错但仍然有一些问题并且不能正确绘制文本的屏幕。

该链接的某些屏幕显示不正确

4

1 回答 1

0

我从其他人那里看到的唯一答案是,他们有时会根据字母大小进行自己的计算。

任何有此问题的人检查:https ://github.com/jessesquires/MessagesTableViewController

这是我能找到的唯一来源,最后在某些情况下boundingRectWithSize不够好。

于 2014-01-10T09:28:40.357 回答