DTAttributedTextView不会重新布局

时间:2015-11-13 11:43:23

标签: ios swift dtcoretext

当DTAttributedTextView框架更改时,视图内的内容(文本)不会被转发。我在tableView单元格中有文本视图,其高度由布局约束指定,该值在代码中更改。宽度会根据单元格宽度自动更改。

我尝试手动拨打setNeedsLayoutlayoutIfNeededrelayoutTextsetNeedsDisplay。似乎没有任何帮助。为什么内容布局会以这种方式锁定?

这似乎适用于高度,但不适用于宽度:

override func layoutSubviews() {
    super.layoutSubviews()

    comment.attributedTextContentView.layoutFrame = DTCoreTextLayoutFrame(
        frame: comment.frame,
        layouter: comment.attributedTextContentView.layouter)
    comment.relayoutText()
}

1 个答案:

答案 0 :(得分:0)

在调用relayoutText

之前,必须将layouter设置为nil
comment.attributedTextContentView.layoutFrame = DTCoreTextLayoutFrame(
    frame: comment.frame,
    layouter: comment.attributedTextContentView.layouter)
//gets rid of cached layouter
comment.layouter = nil
comment.relayoutText()