Objective c 在uilabel中查找文本的位置{x,y}
我有一个来自服务器的字符串,它显示在UILabel MultiAlign上。就在这个字符串中,我正在识别一些特定的子字符串。我想在该子字符串上放置一个按钮(按钮将是UILabel的子视图)。为此,我需要子字符串坐标。我经历了这些,但我无法理解。假设我的完整字符串是abc,567-324-6554,纽约。我希望567-324-6554显示在我需要其坐标的按钮上。 如何使用上面的链接查找子字符串的坐标?Objective c 在uilabel中查找文本的位置{x,y},objective-c,ipad,Objective C,Ipad,我有一个来自服务器的字符串,它显示在UILabel MultiAlign上。就在这个字符串中,我正在识别一些特定的子字符串。我想在该子字符串上放置一个按钮(按钮将是UILabel的子视图)。为此,我需要子字符串坐标。我经历了这些,但我无法理解。假设我的完整字符串是abc,567-324-6554,纽约。我希望567-324-6554显示在我需要其坐标的按钮上。 如何使用上面的链接查找子字符串的坐标? 谢谢,UILabel没有执行此操作的任何方法。您可以使用,因为它实现了。您需要将文本视图的edi
谢谢,
UILabel
没有执行此操作的任何方法。您可以使用,因为它实现了。您需要将文本视图的editable
属性设置为NO
类似这样未经测试的代码应该可以工作:
- (CGRect)rectInTextView:(UITextView *)textView stringRange:(CFRange)stringRange {
UITextPosition *begin = [textView positionFromPosition:textView.beginningOfDocument offset:stringRange.location];
UITextPosition *end = [textView positionFromPosition:begin offset:stringRange.length];
UITextRange *textRange = [textView textRangeFromPosition:begin toPosition:end];
return [textView firstRectForRange:textRange];
}
它应该返回一个CGRect
(在文本视图的坐标系中),它覆盖了stringRange
指定的子字符串。如果将按钮设置为文本视图的子视图,则可以将按钮的边框设置为该矩形
如果子字符串跨越多行,则矩形将仅覆盖第一行。我想在UITextView中找到此字符串“***”的x和y,您能否帮助我尝试执行此操作,但其错误为CGRect varf=[self-RectinextView:select4 stringRange:@“**”;您需要传递
CFRange
,而不是NSString
,作为stringRange
参数。也许您会发现NSString
的rangeOfString:
方法很有用。int-beginIndex=[select4.text-rangeOfString:@“***”位置;至于“我怎么称呼这个函数”,我不知道你说的是什么函数。如果您的意思是rangeOfString:
,您可以阅读手册或查看在的搜索框中键入rangeOfString
时出现的大量示例代码文件之一。做好你的工作!