以编程方式将标签文本中的任何单词设为按钮 iOS

Make any word in label text as button programmatically iOS

我一直在寻找执行以下操作的方法

标签:"Your favorite color [Blue] / [Red]"

所以,我得到 "Your favorite color Blue / Red" - 输入文本和(蓝色,红色)类型按钮。

我想在标签上蓝色和红色出现的确切位置呈现按钮。字体大小将相同。

根据文本获取标签宽度

CGSize labelSize = [myLabel.text sizeWithFont:myLabel.font 
                            constrainedToSize:myLabel.frame.size 
                                lineBreakMode:NSLineBreakByWordWrapping];

然后计算单个字符宽度

CGFloat labelSingleCharWidth = labelSize.width/"numberOfCharInLabelString";  

在此之后获取范围

 NSRange range = [myLabel.text rangeOfString:@"Blue"];

它将 return 的位置和长度 "Blue"。根据这个使你的按钮框架像这样

myButton.frame=CGRectMake(range.location*labelSingleCharWidth , 0 , range.length*labelSingleCharWidth , labelSize.heigth );

对你有帮助。