繁体   English   中英

UITextView不打印多行

[英]UITextView not printing multiple lines

我只是从数据库中读取,我想输出几行。

我有以下代码:

 for row in try inventoryDB.prepare("SELECT name, amount FROM inventory") {
       textView1.text = ("name: \(row[0]), amount: \(row[1])")
       //textView1.text=("test \n")
       // id: Optional(2), email: Optional("betty@icloud.com")
       // id: Optional(3), email: Optional("cathy@icloud.com")
 }

并且只打印第一行。

更改为

 print("name: \(row[0]), amount: \(row[1])")

在控制台中逐行显示所有数据,所以我知道它在那里。

我尝试将换行符\\n附加到UITextViewcall ,但它仍然仅打印最上面的行。

我是在格式化错误吗?

您将替换数据库每一行的文本视图的内容,因此一旦完成,最终将获得文本视图中的最后一行值。 您可以首先将所有内容放入字符串中,最后在文本视图中显示它,如下所示:

var txt = ""
for row in try inventoryDB.prepare("SELECT name, amount FROM inventory") {
       txt  += "name: \(row[0]), amount: \(row[1])\n" 
       //textView1.text=("test \n")
       // id: Optional(2), email: Optional("betty@icloud.com")
       // id: Optional(3), email: Optional("cathy@icloud.com")
}
textView1.text = txt

您为每行替换textView1的值。 我会将您的数据映射到字符串数组。 然后,您可以使用换行符将每个元素连接在一起。

let text = try inventoryDB.prepare("SELECT name, amount FROM inventory").map({ row -> String in
       return "name: \(row[0]), amount: \(row[1])"
 }).joined(separator: "\n")
textView1.text = text

问题是您要在循环内更改TextView的文本,而不是追加从循环中获取的字符串。

尝试这个:

var alltext = ""
for row in try inventoryDB.prepare("SELECT name, amount FROM inventory"){
alltext = alltext + "name: \(row[0]), amount: \(row[1]) \n"
}
textView1.text = alltext

确保textView的格式也可以显示多于1行。

在Swift 3.0中,这对我有用:

print("name: \(row[0]), amount: \(row[1])", terminator: "\n")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM