【发布时间】:2019-03-12 13:02:21
【问题描述】:
所以我在我的应用程序中停下来了。我目前正在使用 tableview 来显示一些从 Arduino 发送的数据。现在我手动一次发送一个字节数组来模拟,但它最终会发送很多。目前,该应用程序可以很好地显示数据,就像我想要的那样,但是每次单击 Arduino 发送时,我都无法让它在新单元格中显示数据。
所以在numberOfRowsInSection 中它将返回 100 个相同数据的单元格。每次我从 Arduino 发送它时,我希望它返回 1 个单元格。因此,如果我单击发送 10 次,我想显示已发送数据的 10 个单元格。
目前我使用的是:return recievedBytes.count,但这仅计算数组中的每个字节。但我想要一个新的单元格,每次都会收到一个新的字节数组。
有谁知道我需要返回什么才能做到这一点?
如果有任何不清楚的地方,请大声疾呼。
谢谢大家
这是表格视图代码:
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 100 //THIS IS WHERE I NEED HELP :)
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "RecieveCell", for: indexPath) as! RecieveTableCell
cell.rowNumber.text = "\(indexPath.row + 1)."
cell.modeLabel.text = "\(recievedModeType)"
cell.timeLabel.text = "\(String(message))μs"
return cell
}
编辑:
好吧,伙计们,我想我应该多写一些,因为我觉得我误导了你一点。我已经尝试了你的建议,但它并不完全是我的想法。我现在看到我写的有点误导。
例如。我从 Arduino 发送这个:[0x11,0x22,0x33,0x44,0x55,0x66,0x77]
在此我可以在表格视图中显示 MODE(recievedModeType) 和 TIME(message)。
按照你们的建议,我现在返回 7 个单元格,每个单元格中有一个元素。因为receivedBytes.count。跟我想的不太一样。
我想要的是通过发送该数组在一个单元格中显示模式和时间。只要它被发送,它将继续显示在更多的单元格中。所以从某种意义上说,如果要发送 50 个这样的数组,那么我希望有 50 个代表 MODE 和 TIME 的单元格。
但我现在会继续关注这个..
对于造成的混乱,我深表歉意。
谢谢!
【问题讨论】:
-
欢迎来到 SO。一个简单的解决方案是将
didSet观察者添加到receivedBytes数组。像这样:var recievedBytes = ["type of the data"]() { didSet { tableView.reloadData() } }并在numberOfRowsInSection方法中保留return recievedBytes.count -
谢谢大家,这让我有了一些想法,太好了!让我试一试,我会告诉你进展如何!
标签: ios swift uitableview tableview