0

我希望我的 UILabel 显示来自 SQLite 数据库的文本。但它不能识别换行符“\n”——它只是像“Hello \n World”一样在屏幕上打印它。

这就是我从数据库中获取文本值的方式:

...
NSString *aDescription = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 3)];
myLabel.text = aDescription
...

有什么建议么?

UPD:这个问题不是如何在 UILabel 中显示多行。它是如何在 SQLite 中存储和稍后编码换行符。

4

3 回答 3

2

似乎您保存\n而不是换行符。

如果您使用 SQLite 编辑器,您可能希望使用换行符从 textedit 复制文本。

如果你不能在输入端解决它,你应该这样做,那么你需要\n用换行符替换文字:

NSString *aDescription = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 3)];
myLabel.text = [aDescription stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"];
于 2012-06-08T09:37:31.043 回答
1

默认情况下,UILabel 不允许换行。如果您希望换行符有效,则必须将标签的行号设置为相当大的数字(并扩展其frame属性):

label.numberOfLines = 5;

或者,正如马蒂亚斯建议的那样:

label.numberOfLines = 0;

允许标签根据需要显示尽可能多的行。

于 2012-06-08T09:14:06.270 回答
0

你的标签高度不够2行打印数据,增加高度,也增加行数 lbl.numberOfLines = 2;

于 2012-06-08T09:14:44.567 回答