Tha*_*ham 253 iphone newline line-breaks uilabel ios
让我们看看我的字符串看起来像这样:
NSString *longStr = @"AAAAA\nBBBBB\nCCCCC";
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能让UILabel显示这样的信息
AAAAA
BBBBB
CCCCC
我不认为\nUILabel会认可,所以我可以在NSString中放置任何东西,以便UILabel知道它必须在那里创建换行符吗?
Ger*_*haw 324
使用\n如您使用的是您的字符串.
将numberOfLines设置为0以允许任意数量的行.
label.numberOfLines = 0;
更新标签框以匹配使用的文本大小sizeWithFont:.如果不这样做,您的文本将垂直居中或切断.
UILabel *label; // set frame to largest size you want
...
CGSize labelSize = [label.text sizeWithFont:label.font
constrainedToSize:label.frame.size
lineBreakMode:label.lineBreakMode];
label.frame = CGRectMake(
label.frame.origin.x, label.frame.origin.y,
label.frame.size.width, labelSize.height);
Run Code Online (Sandbox Code Playgroud)
sizeWithFont:constrainedToSize:lineBreakMode:
参考,替换不推荐使用的sizeWithFont:在iOS 7中?
CGSize labelSize = [label.text sizeWithAttributes:@{NSFontAttributeName:label.font}];
label.frame = CGRectMake(
label.frame.origin.x, label.frame.origin.y,
label.frame.size.width, labelSize.height);
Run Code Online (Sandbox Code Playgroud)
Mar*_*rco 270
在Interface Builder中的小方框中键入时,使用option-return插入换行符(\n).在Interface Builder的Label属性中,设置#Lines = 0.
选择标签,然后将Lines属性更改为0,如上图所示,然后在字符串中使用\n进行换行.
Al-*_*ani 131
如果从XML文件中读取字符串,则\n此字符串中的换行符将无法在UILabel文本中使用.该\n不会被解析到一个换行符.
这是解决此问题的一个小技巧:
// correct next line \n in string from XML file
NSString *myNewLineStr = @"\n";
myLabelText = [myLabelText stringByReplacingOccurrencesOfString:@"\\n" withString:myNewLineStr];
myLabel.text = myLabelText;
Run Code Online (Sandbox Code Playgroud)
因此,您必须\n通过\n在硬编码中解析来替换字符串中未解析的部分NSString.
这是我的其他标签设置:
myLabel.numberOfLines = 0;
myLabel.backgroundColor = [UIColor lightGrayColor];
myLabel.textColor = [UIColor redColor];
myLabel.font = [UIFont fontWithName:@"Helvetica Neue" size:14.0];
myLabel.textAlignment = UITextAlignmentCenter;
Run Code Online (Sandbox Code Playgroud)
最重要的是设置numberOfLines为0(=标签中的无限行数).
不知道为什么Apple选择不解析\n从XML读取的字符串?
希望这可以帮助.
小智 114
在界面构建器中,您可以使用Ctrl+ Enter来插入/n所需的位置.这种方式可以实现以下情况
aaa
aaaaaaa
在Swift 2.2中,> iOS 8
我在Storyboard上的Attribute Inspector下设置了Lines = 0,并将引用插座链接到标签.然后在控制器中使用如下:
@IBOutlet weak var listLabel: UILabel!
override func viewDidLoad() {
...
listLabel.text = "Line 1\nLine 2\nLine 3\nLine 4\nLine 5\nLine 6\nLine 7\nLine 8"
}
Run Code Online (Sandbox Code Playgroud)
对于那些想要简单解决方案的人,请在 Interface Builder 的文本标签输入框中执行以下操作:
确保您的行数设置为 0。
Alt + Enter
(Alt 是您的选项键)
干杯!
小智 6
//不要忘记将numberOfLines设置为零
UILabel* locationTitle = [[UILabel alloc] initWithFrame:CGRectMake(5, 30, 230, 40)];
locationTitle.font = [UIFont systemFontOfSize:13.0];
locationTitle.numberOfLines = 0;
locationTitle.text = [NSString stringWithFormat:@"Eaton industries pvt. Ltd \nUK Apr 12"];
[cell addSubview:locationTitle];
Run Code Online (Sandbox Code Playgroud)
小智 6
在 xCode 11、Swift 5 中\n工作正常,请尝试以下代码:
textlabel.numberOfLines = 0
textlabel.text = "This is line one \n This is line two \n This is line three"
Run Code Online (Sandbox Code Playgroud)
就这样做吧
NSString * strCheck = @"A\nB";
strCheck = [strCheck stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"]; //This is to prevent for fetching string from plist or data structure
label.numberOfLines = 0;
label.lineBreakMode = NSLineBreakByWordWrapping;
label.text = strCheck;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
249442 次 |
| 最近记录: |