【问题标题】:Calculation Frame of a UILabel SubclassUILabel 子类的计算框架
【发布时间】:2013-12-10 10:24:59
【问题描述】:

底线是我正在尝试重现 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。

【问题讨论】:

    标签: ios objective-c uitableview uilabel imessage


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-22
      • 1970-01-01
      • 1970-01-01
      • 2015-05-15
      相关资源
      最近更新 更多