如何在按钮中用两行显示两个NSString变量的字符串值
解决按钮标题从两个字符串变量生成两行文本的问题
没问题,这个需求很容易实现,核心就是把两个字符串变量用换行符\n拼接起来,再配合你已经知道的换行配置就行。下面给你详细的实现步骤和代码示例:
关键步骤说明
- 先准备好你的两个NSString变量(假设已经有值了);
- 将两个变量用
\n拼接成一个完整的标题字符串; - 保留你原来设置的换行模式和居中对齐,别忘了补充设置
numberOfLines = 0(默认是1,会限制只显示一行,必须打开多行支持); - 把拼接好的字符串传给按钮的
setTitle:forState:方法。
Objective-C 代码示例
// 假设你的两个字符串变量已经定义并赋值 NSString *line1 = @"你要显示的第一行内容"; NSString *line2 = @"你要显示的第二行内容"; // 拼接带换行的标题字符串,这里用stringWithFormat最直观 NSString *buttonTitle = [NSString stringWithFormat:@"%@\n%@", line1, line2]; // 配置按钮标题的多行显示属性 mybutton.titleLabel.lineBreakMode = NSLineBreakByWordWrapping; mybutton.titleLabel.textAlignment = NSTextAlignmentCenter; mybutton.titleLabel.numberOfLines = 0; // 必须设置为0,允许自动换行显示多行 // 设置按钮标题 [mybutton setTitle:buttonTitle forState:UIControlStateNormal];
你也可以用stringByAppendingString:来拼接,效果是一样的:
NSString *buttonTitle = [[line1 stringByAppendingString:@"\n"] stringByAppendingString:line2];
额外补充:Swift 版本写法
如果是用Swift开发,对应的实现代码如下:
let line1 = "第一行内容" let line2 = "第二行内容" let buttonTitle = "\(line1)\n\(line2)" myButton.titleLabel?.lineBreakMode = .byWordWrapping myButton.titleLabel?.textAlignment = .center myButton.titleLabel?.numberOfLines = 0 myButton.setTitle(buttonTitle, for: .normal)
这样就能完美实现从两个变量获取内容,让按钮标题显示两行文本啦~
内容的提问来源于stack exchange,提问作者user9713861
相关产品推荐
相关产品推荐

