如何计算 UITextView
第一个基线位置?
我试过这样计算:
self.textView.font!.descender + self.textView.font!.leading
但是,我得到的值不正确。有什么想法、提示吗?
最佳答案
有一张图来自 Apple document
根据我的理解,font.descender + font.leading
给出了第一条基线和第二条线开始之间的距离。
如果 UITextField
没有 secret 填充,我会想象 font.lineHeight
会给你正确的数字。
编辑
UITextField
和 UITextView
共享相同的 UIFont
属性。
对于UITextView
,可以设置一个额外的textContainerInset
。
编辑 2
进一步查看 UITextView
可以提供有关可以实现的目标的更多线索:
它其实有一个textContainer
属性,是一个NSTextContainer
。
The NSTextContainer class defines a region in which text is laid out. An NSLayoutManager object uses one or more NSTextContainer objects to determine where to break lines, lay out portions of text, and so on.
它已被 layoutManager
使用,理论上第一行文本顶部的填充可以通过 usedRectForTextContainer(_:)
找到。
一旦我手头有一台 Mac,我就需要对此进行测试。 :)
关于ios - 如何计算 UITextView 相对于原点的第一个基线位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35922215/