首页 > 解决方案 > 无法以可编程方式使用 Highlightr 在 UITextView 上显示全部内容

问题描述

Highlightr用来高亮代码,下面是一些代码

var highlightr : Highlightr!
let textStorage = CodeAttributedString()
override func viewDidLoad() {
    super.viewDidLoad()
    self.view.addSubview(tvContent)
}
lazy var tvContent:(UITextView) = {
    textStorage.language = "html"
    let layoutManager = NSLayoutManager()
    textStorage.addLayoutManager(layoutManager)
    let textContainer = NSTextContainer(size: view.bounds.size)
    layoutManager.addTextContainer(textContainer)
    let textView = UITextView(frame: CGRect(x: 5, y: 60, width: self.view.frame.size.width - 10, height: self.view.frame.size.height - 60), textContainer: textContainer)
    return textView
}()
func fromServer() {
    let API_URL = "https://www.google.com"
    Alamofire.request(API_URL)
    .responseJSON { response in
        let data = json.object(forKey: "data")!
        self.tvContent.text = data as? String
    }
}

调用该函数后fromServer,我将得到google.com的html代码,但tvContent仅显示部分代码。

显示部分代码

如果我删除Highlightr,只使用 UITextView,tvContent可以显示所有这样的代码

显示完整代码

有任何想法吗?非常感谢。

标签: iosswiftuitextview

解决方案


无需以编程方式添加高度,使用约束并使 textview 滚动为 false


推荐阅读