我正在尝试将我的UILabel
渲染成多行。
我试过了:
CGRect rect2 = CGRectMake(100, 45, 150, 60);
FontLabel *addresLbl1 = [[FontLabel alloc] initWithFrame:rect2
fontName:@"arial" pointSize:12.0f];
//#006000
addresLbl1.textColor = [UIColor colorWithRed:84/255.0 green:84/255.0 blue:84/255.0 alpha:1.0];
addresLbl1.text = @"401 King St\\nToronto, Ontario, M5V1K1\\nCanada";
//[addresLbl1 setTextAlignment:UITextAlignmentCenter];
addresLbl1.backgroundColor = nil;
addresLbl1.opaque = NO;
[cell.contentView addSubview:addresLbl1];
[addresLbl1 release];
但它呈现为 401 King St \ nToronto,Ontario,M5V1K1 \ nCanada 请注意,此标签已添加到 UITableView 的单元格中。 我需要在字符串中'\ n'位置的新行,这个字符串将来自服务器,因此'\ n'的位置可能会有所不同
答案 0 :(得分:0)
默认情况下,UILabel将其属性numberoflines设置为1,这意味着您的文本将在一行中呈现。尝试将该属性设置为0,如文档
所示此属性控制要使用的最大行数 将标签的文本放入其边界矩形中。默认值 对于此属性是1.删除任何最大限制,并使用尽可能多的 根据需要,将此属性的值设置为0。
如果使用此属性约束文本,则不使用任何文本 适合最大行数和边界内 使用适当的换行符截断标签的矩形 模式。
使用sizeToFit方法调整接收器大小时,请调整大小 考虑存储在此属性中的值。例如,如果 此属性设置为3,sizeToFit方法调整接收器的大小 所以它足够大,可以显示三行文字。
答案 1 :(得分:0)
对于多行,您可以使用UILabel属性numberOfLines
作为
label.numberOfLines = 3;
在您的情况下,您的文字只能放在一行中,所以如果您想要多行更好,您应该定义3个不同的标签。
答案 2 :(得分:0)
您需要先将numberOfLines设置为0,然后再设置
unichar chr[1] = {'\n'};
NSString *singleCR = [NSString stringWithCharacters:(const unichar *)chr length:1];
[yourLabel setText:[NSString stringWithFormat:@"new%@line",singleCR]];
这将确保你想要的东西。
答案 3 :(得分:0)
你不应该使用双反斜杠。
\\ is the code used for \, so \\n will be parsed and printed as \n
所以你的代码应该是这样的:
addresLbl1.text = @"401 King St\nToronto, Ontario, M5V1K1\nCanada";
addresLbl1.numberOfLines = 0;