簡體   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