我希望我的UILabel显示来自SQLite数据库的文本。 但它无法识别换行符“\ n” - 它只是在屏幕上打印出来,如“Hello \ n World”。
这是我从DB获取文本值的方法:
...
NSString *aDescription = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 3)];
myLabel.text = aDescription
...
有什么建议吗?
UPD : 这个问题不是如何在UILabel中显示多行。它是如何在SQLite中存储和稍后编码换行符。
答案 0 :(得分:2)
您似乎保存了\n
而不是换行符。
如果您使用SQLite编辑器,您可能希望使用换行符从textedit复制文本。
如果你不能在输入端解决它,你真的应该这样做,那么你需要用换行符替换文字\n
:
NSString *aDescription = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 3)];
myLabel.text = [aDescription stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"];
答案 1 :(得分:1)
默认情况下,UILabel不允许换行。如果您希望换行有效,则必须将标签的行号设置为相当大的数字(并扩展其frame
属性):
label.numberOfLines = 5;
或者,正如Matthias所说:
label.numberOfLines = 0;
允许标签根据需要显示多行。
答案 2 :(得分:0)
您的标签高度不足以打印2行数据,增加高度,并增加行数 lbl.numberOfLines = 2;