代码旅行

通过 Highlightr 在 Swift 中实现代码高亮

前些天在一款应用中需要对代码进行高亮显示,用到了 Highlightr 这个第三方库,这个类库搜使用的核心库是 highlight.js

实验环境

操作步骤

Highlightr 官方库的说明文档中已经写得很清楚,先安装后使用。

  • 安装

    简便的安装方式有两种,即 CocoaPods 和 Carthage,我习惯了 CocoaPods,就直接用它了。将 Highlightr 添加到 podfile

    pod 'Highlightr'
    

    执行安装

    pod install
    

    安装完成后打开项目的 xcworkspace 文件。

  • 使用

    我使用的是 UITextView 来接受文字内容,部分代码如下

    lazy var tvContent:(UITextView) = {
    	let textView = UITextView(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height))
    	return textView
    }()
    let highlightr = Highlightr()
    func initUI() {
    	self.view.addSubview(tvContent)
    	let code = "code content"
    	self.tvContent.attributedText = self.highlightr?.highlight(code!)
    }
    

    注意点,UITextView 这里用 attributedText 来接受内容,不能用 text,用 text 来接受内容会出现截断的情况。

    Highlightr 还可以实时进行代码高亮,官方的示例代码如下

    let textStorage = CodeAttributedString()
    textStorage.language = "Swift"
    let layoutManager = NSLayoutManager()
    textStorage.addLayoutManager(layoutManager)
    let textContainer = NSTextContainer(size: view.bounds.size)
    layoutManager.addTextContainer(textContainer)
    
    let textView = UITextView(frame: yourFrame, textContainer: textContainer)
    

    除此之外,它还可以更改显示的风格 (Themes),显示的开发语言。

挺好的一个库,值得一用。

--- EOF ---

请注意:这里的内容都是原创,你可以免费阅读,但拒绝所有其他任何形式的转载,谢谢配合。如果你发现文章中有错误,请发邮件给我,非常感谢。

The Copyright of all posts & photos posted in tourcoder.com is belong to tourcoder.com. You can read them for free, but you may not reuse anything therein without my permission.

更多内容