如何在iPhone中进行语法高亮显示UITextView,特别是语法高亮显示(和检测)?Objective-C
我的一些想法如何做到这一点:
NSAttributedString.现在可在iOS 3.2及更高版本中使用.但是如何将其NSAttributedString放入UITextView?UIWebView.在用户完成编辑时叠加它并使用CSS样式表为文本着色.但是我怎么做到这一点UIWebView,给它文本然后着色呢?我有一个UILabel我需要转换为一个UITextView原因.当我这样做时,尽管使用相同的(自定义)字体,但文本的位置并不相同.
我发现如果我设置:
textView.textContainer.lineFragmentPadding = 0;
textView.textContainerInset = UIEdgeInsetsZero;
Run Code Online (Sandbox Code Playgroud)
这使文本非常接近,但如果我叠加UITextView在上面UILabel,我看到文本定位与每个新行相距更远.

该UILabel是绿的,UITextView是黑色的.这NSParagraphStyle用于将最小和最大线高设置为15.
我已经设置了段落样式和最小/最大行高,但我还是无法完全匹配它.我不是一个打印机,所以我不一定明白所有的字体相关条款的文件在NSLayoutManager和NSTextContainer和所有.
我只需要支持iOS 7及更高版本.
我不会切换到一些疯狂的基于CoreText的自定义小部件或使用一些随机的第三方库.如果必须的话,我很接近.但似乎应该有一些随机属性的组合来使它们布局相同.
如何在UITextView中增加行间距?
我希望使用默认系统字体,即大小为15的Helvetica.
您对UITextView的行间距有什么想法吗?我无法应用它.下面是我的代码.
import UIKit
class DetailViewController: UIViewController {
@IBOutlet weak var itemTextView: UITextView!
var txtString: String?
var txtTitleBar:String?
override func viewDidLoad() {
super.viewDidLoad()
//navigationController?.navigationItem.title = "Love"
self.title = txtTitleBar
//self.tabBarController?.navigationItem.title = "My Title"
itemTextView.text = txtString
itemTextView.font = UIFont(name: "Arial-Regular", size:20)
itemTextView.font = .systemFont(ofSize: 25)
(itemTextView.font?.lineHeight)! * 5
}
}
Run Code Online (Sandbox Code Playgroud)

uitextview ×4
ios ×3
objective-c ×2
cocoa-touch ×1
ios6 ×1
iphone ×1
swift ×1
uilabel ×1
xcode ×1
xcode4 ×1