iphone - 获取 UILabel 中文本的物理位置

标签 iphone ios ipad uilabel

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

我需要向其中包含 UILabel 的 View 添加一个人工光标。问题在于 UILabel 中的文本似乎任意更改其顶部和底部边距。我不知道操作系统如何确定将文本放置在 UILabel 中的位置。

因此,如果能够创建一个类别或方法来计算绘制到 View 上的实际文本的 Y 轴像素原点,那就太好了。

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

更新

我在想这可能通过获取 UILabel 上下文并找到顶部的空白来实现,这应该给我实际文本的 Y 像素原点吧?不过,我什至不知道从哪里开始,或者让它足够有效以不抑制对 UILabel 的频繁更改。

非常感谢。

最佳答案

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

对于 TextView ,你可以做类似的事情

CGRect rect = [textView.layoutManager usedRectForTextContainer:textView.textContainer];

这应该给你你想要的。如果内存服务于它返回的 rect 将相对于 TextView 。

希望这有帮助:)

关于iphone - 获取 UILabel 中文本的物理位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14831490/

相关文章:

javascript - window.print() 是否适用于 iPad 上所有版本的 Safari?

ios - 如何在 Xcode 6 iOS 模拟器上安装应用程序

ios - CALayer 位置包含 NaN : [nan 15]

ios - 无法将 UIView 类型的值转换为 UIButton

iphone - 应用内购买 : Stuck at paymentWithProductIdentifiers - which is deprecated

ios - 在 ios 上选择 opengl-es 的代码

ios - 搜索字典数组的简便方法

iphone - 使用 CSS 禁用 iOS 设备的链接

ios - RxSwift 代码第一次运行,第二次部分运行

ios - 从uitableviewcell调用并使用uitableview?