我正在使用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);