我有一个来自服务器的字符串,我在UILabel multiligne上显示.它在该字符串中,我正在识别一些特定的子字符串.我想在子字符串上放置一个按钮(按钮将是UILabel的子视图).为此,我需要子串坐标.我经历过这个,但我无法理解.假设我的完整字符串是abc,567-324-6554,纽约.我希望567-324-6554显示在我需要其坐标的按钮上.如何使用上面的链接查找子串的坐标?谢谢,
UILabel没有任何方法可以做到这一点.您可以使用它UITextView,因为它实现了UITextInput协议.您需要将文本视图的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];
}
Run Code Online (Sandbox Code Playgroud)
那应该返回一个CGRect(在文本视图的坐标系中)覆盖指定的子字符串stringRange.如果将按钮设置为文本视图的子视图,则可以将按钮的框架设置为此矩形.
如果子串跨越多行,则矩形将仅覆盖第一行.
| 归档时间: |
|
| 查看次数: |
3347 次 |
| 最近记录: |