UILabel子类的计算框架

时间:2013-12-10 10:25:00

标签: ios objective-c uitableview uilabel imessage

底线是我正在尝试重现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:”来确定可能的大小。 文本可以正确显示的唯一方法是在计算完成后手动添加一定数量的大小和高度和宽度。

我能得到的最好的是一个可能看起来不错但仍然存在一些问题而且没有正确绘制文本的屏幕。

该链接有一些屏幕not showing properly

1 个答案:

答案 0 :(得分:0)

我能够看到来自其他人的代码的唯一答案是,他们在某些时候根据字母大小进行自己的计算。

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

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