更改NSMutableAttributedString直到滚动到顶部时,textview中的子视图按钮消失

时间:2017-10-10 10:29:35

标签: ios swift scroll uitextview subview

我一直在为我的文本视图创建一个突出显示系统,它足够大,可以启用滚动,在底部我添加了一个按钮,使用子视图作为下一个视图的segue。

当我使用下面的功能更改文本时,按钮消失(不可点击或可见)。 当我滚动到文本视图的顶部,然后再次向下滚动时,该按钮会再次出现。谁知道为什么?有没有办法刷新按钮的显示?

编辑:子事件计数在事件之前或之后不会改变。

func highlightText () {

    guard let text = self.textView.attributedText else {
        return
    }
    guard let range = self.textView.visibleBottomRange else {
        return
    }
    let attributedString = NSMutableAttributedString(attributedString:text)
    attributedString.addAttribute(NSBackgroundColorAttributeName, value: UIColor.yellow , range: range)

    self.textView.attributedText = attributedString
}

1 个答案:

答案 0 :(得分:0)

在这里找到答案: Stackoverflow question

使用: self.textView.layoutManager.allowsNonContiguousLayout = false; 允许子视图在更改文本视图的属性文本时保持可见