借助NSRange在子字符串上创建UIButton

问题描述 投票:0回答:3

我有一些来自服务器的文字。它可以是单行或多行文本。我必须在UILabel上显示文本,这对我来说没有问题。问题是,我必须在找到相同文本的特定子字符串时显示UIButton。例如,文本为Nitish \ n435-234-6543 \ nIndia,其显示如下:

Nitish  
435-234-6543  
India  

所以,当我找到435-234-6543时,我必须在435-234-6543上显示UIButton。

注意:

  1. 文本是动态的-来自服务器。以上仅是示例。
  2. UIButton将是UILabel的子视图。

我也尝试过类似[[OHAttributedLabel,rectForLetterAtIndexthis等方式。但是没有成功。我的想法是,在找到子字符串时创建按钮,并基于子字符串的NSRange设置按钮的框架。这有可能吗?怎么做到呢?还是有其他方法可以做到这一点?

我想这是我担心的方法。
iphone ios nsstring uibutton nsrange
3个回答
0
投票
->我尝试计算位置,但没有成功。似乎需要大量工作来计算职位。我想到的一个立即解决方案是,为什么不带一两个标签和一个按钮。

假设。您从Web服务获得的动态字符串是:“ Nitesh-56789-Test”。

    字符串的查找范围假定为“ 56789”。
  1. 该范围起始位置之前的字符串分配给一个标签,即,将“ Nitesh”分配给标签之一。
  2. 现在添加一个自定义按钮,将我们搜索的字符串作为文本(56789)。
  3. 现在确保在主字符串中是否有子字符串之后的内容。在这里,我的意思是在我们的搜索字符串“ 56789”之后仍然保留“ Test”,因此将其分配给第三个标签。
  4. 这里您必须使用sizeWithFont方法通过动态高度宽度计算来找出所有标签和按钮的框架。


0
投票

1)简易解决方案:


0
投票
对于那些想要完美解决方案的人,这是关于如何获取子字符串的CGRect的solution
© www.soinside.com 2019 - 2024. All rights reserved.