textview中的子视图按钮在更改NSMutableAttributedString之前消失,直到滚动到顶部
问题描述:
我一直在为我的文本视图创建一个高亮系统,该系统足够大以启用滚动功能,在底部添加了一个使用子视图的按钮,继续观看下一个视图。textview中的子视图按钮在更改NSMutableAttributedString之前消失,直到滚动到顶部
当我用下面的功能改变文本时,按钮消失(不可点击或可见)。 当我滚动到文本视图的顶部,然后再次向下滚动时,该按钮重新出现。有人知道为什么有什么办法刷新按钮的显示?
编辑:子视图计数在事件之前或之后没有更改。
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
}
答
在这里找到了答案:用 * question
: self.textView.layoutManager.allowsNonContiguousLayout = false;
允许子视图,同时改变文本视图的属性文本保持可见