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

Posted

技术标签:

【中文标题】更改 NSMutableAttributedString 直到滚动到顶部时,文本视图中的子视图按钮消失【英文标题】:Subview button in textview disappearing when changing NSMutableAttributedString until scrolled to the top 【发布时间】:2017-10-10 10:29:35 【问题描述】:

我一直在为我的文本视图创建一个突出显示系统,该系统足够大,可以启用滚动,在底部我添加了一个使用子视图的按钮,它充当下一个视图的 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】:

在这里找到答案: *** question

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

【讨论】:

以上是关于更改 NSMutableAttributedString 直到滚动到顶部时,文本视图中的子视图按钮消失的主要内容,如果未能解决你的问题,请参考以下文章

在运行时更改方向更改 ViewControllers

UIScrollView 更改 contentOffset 时更改框架

HAC集群更改IP(单节点更改全部节点更改)

HAC集群更改IP(单节点更改全部节点更改)

设备方向更改时更改 UIImage

phpmyadmin 在更改任何值时更改日期