我有UITextView
一些超出其界限的文本。因此,启用垂直滚动。
现在我想找到第一个可见字符的位置。这是我尝试过的:
let firstCharacterPosition = characterRange(at: contentOffset)?.start
这在大多数情况下都有效。但是,当我向上滚动并接近文本的开头时,该characterRange(at:)
函数突然返回nil
.
一开始我认为这只是因为弹跳(当contentOffset.y
值很快变为<0时)。但这不是(唯一的)原因。
我尝试了其他一些值,并惊讶地发现
characterRange(at: .zero)
也返回nil
- 就像具有低正值的文本位置一样y
。
这是为什么?
如何获得UITextPosition
第一个可见角色的可靠信息?