在 iPhone 上的 UILabel 中查找特定字符的位置
我有一个带有一些文本的 UILabel,比如“Hello World abcdefg” 该标签可以有多行、不同的字体大小等。
问题:如何找到此 UILabel 中所有字母“d”的坐标。
逻辑上的第一步是找到这些字符在字符串(UILabel.text)中的位置,但是当它实际绘制在屏幕上时,如何将其转换为坐标
这个想法是找到这些坐标并在该字符的顶部绘制一些自定义的内容(基本上是用自定义图像覆盖它)
I have a UILabel with some text, say "Hello World abcdefg" The label can have multiple lines, different font sizes etc.
Question: How do I find the coordinates of all letters "d" in this UILabel.
Logical first step is find the position of those characters in the string (UILabel.text), but then how do I translate that into coordinates when it's actually drawn on screen
The idea is to find those coordinates and draw something custom on top of that character (basically to cover it with a custom image)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在 iPhone 上测量文本的基本工具位于 UIStringDrawing.h 中,但它们都无法满足您的需求。您基本上必须一次迭代一个字符来测量每个子字符串。当行换行时(结果更高),在最后一个未换行的字符之后分割并将行高添加到 y 坐标。
The basic tools for measuring text on iPhone are in
UIStringDrawing.h
but none of them do what you need. You will basically have to iterate through substrings one character at a time measuring each. When a line wraps (the result is taller), split after the last character that did not wrap and add the line height to your y coordinate.自 iOS 7.0 发布以来,方法已经发生了变化。试试这个
Methods have changed since iOS 7.0 came out. Try this
开始吧:
根据提供的建议,片段的宽度计算将进入宽度数组。
Here ya go:
The width calculation for fragments goes into widths array per suggestions provided.