Iphone 获取UILabel中文本的物理位置

Iphone 获取UILabel中文本的物理位置,iphone,ios,ipad,uilabel,Iphone,Ios,Ipad,Uilabel,我知道如何使用sizeWithFont查找文本大小,但我真正想做的是查找在UILabel中绘制的文本的实际最高点和最低点 我需要在视图中添加一个带有UILabel的人造光标。问题在于UILabel中的文本似乎会任意更改其上下边距。我无法确定操作系统如何确定文本在UILabel中的位置 因此,最好能够创建一个类别或方法,计算出绘制到视图上的实际文本的Y轴像素原点 这可能吗?UITextField如何完美地定位文本和光标 更新 我想这可能是通过获取UILabel上下文并在顶部找到空白来实现的,这应该

我知道如何使用
sizeWithFont
查找文本大小,但我真正想做的是查找在
UILabel
中绘制的文本的实际最高点和最低点

我需要在视图中添加一个带有
UILabel
的人造光标。问题在于
UILabel
中的文本似乎会任意更改其上下边距。我无法确定操作系统如何确定文本在
UILabel
中的位置

因此,最好能够创建一个类别或方法,计算出绘制到视图上的实际文本的Y轴像素原点

这可能吗?UITextField如何完美地定位文本和光标

更新

我想这可能是通过获取UILabel上下文并在顶部找到空白来实现的,这应该给我实际文本的Y像素原点,对吗?我甚至不知道从哪里开始,也不知道如何使它足够有效,以避免频繁更改UILabel


非常感谢。

您需要使用UILabel还是可以使用禁用的UITextView

对于文本视图,可以执行以下操作

CGRect rect = [textView.layoutManager usedRectForTextContainer:textView.textContainer];
这会给你你想要的。如果内存为rect服务,那么它返回的rect将是相对于文本视图的


希望这有帮助:)

是否
[UITextField textRectForBounds:
不能满足您的需要?如果字体大小减小,它似乎不会改变高度(自动收缩UILabel)