以编程方式将标签文本中的任何单词设为按钮 iOS
Make any word in label text as button programmatically iOS
我一直在寻找执行以下操作的方法
标签:"Your favorite color [Blue] / [Red]"
- 其中蓝色和红色是按钮
- 应用从数据库中选择了 2 种类型的字段作为随机问题
一)文本
b) 文本上的按钮
所以,我得到 "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 );
对你有帮助。
我一直在寻找执行以下操作的方法
标签:"Your favorite color [Blue] / [Red]"
- 其中蓝色和红色是按钮
- 应用从数据库中选择了 2 种类型的字段作为随机问题
一)文本
b) 文本上的按钮
所以,我得到 "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 );
对你有帮助。