动态计算RTLabel的高度

时间:2018-11-25 23:00:49

标签: ios

我正在使用RTLabel在ios应用程序中显示html格式的字符串。我在NYAlertViewController中添加了一些内容以显示在那里。我的问题是,我已将换行符设置为wordwrap,并且工作正常。但是,由于我不知道RTLabel的高度,因此我将其设置为以下高度(尤其是最后一行):

RTLabel messageLabel = RTLabel.alloc().init();
messageLabel.setTranslatesAutoresizingMaskIntoConstraints(false);
alertUIView.addSubview(messageLabel);
messageLabel.setLineBreakMode(RTTextLineBreakMode.RTTextLineBreakModeWordWrapping);
messageLabel.heightAnchor().constraintEqualToConstant(messageLabel.optimumSize().height()).setActive(true);

现在optimumSize()没有考虑到,可能会有换行符。因此,它给了我错误的高度,好像我的文本没有换行符。这就是为什么我的文字仅部分显示的原因。

有人知道我该如何计算标签的正确高度以在运行时进行设置?

RTLabel中,其计算方式如下:

self.optimumSize = CTFramesetterSuggestFrameSizeWithConstraints(framesetter, CFRangeMake(0, [self.plainText length]), nil, constraint, &range);

0 个答案:

没有答案