У меня проблема с моим приложением. Я не могу на всю жизнь понять, как это исправить. Это выглядит следующим образом.
Я пытаюсь изменить 2 текста меток в каждой ячейке таблицы.
Это метка MODE, а метка TIME.
Я отправляю байтовый массив из Arduino, который содержит данные для его отображения. Один за другим я отправляю это из Arduino, чтобы увидеть, как оно хорошо отображается в виде таблицы. Все работает. Но когда я пытаюсь отправить другой байтовый массив с другим РЕЖИМОМ и ВРЕМЯМ, он изменяет ВСЕ предыдущие ячейки. Вместо того, чтобы обновлять только новые ячейки, указав правильный режим и время.
Вот мой код просмотра таблицы:
Источник данных табличного интерфейса пользователя
@IBOutlet weak var recieveTableView: UITableView!
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return recievedArrays.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "RecieveCell", for: indexPath) as! RecieveTableCell
cell.contentView.backgroundColor = cell.isSelected ? UIColor.darkGray : UIColor.white
cell.rowNumber.text = "\(indexPath.row + 1)." //You have to + 1 ,because cells are zero based.
cell.modeLabel.text = "\(recievedModeType)"
cell.timeLabel.text = "\(String(message))μs"
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("touched")
if let cell = tableView.cellForRow(at: indexPath) as? RecieveTableCell {
cell.contentView.backgroundColor = UIColor.darkGray
}
}
recceiveModeType - РЕЖИМ, а сообщение - ВРЕМЯ.
У меня есть функция, которая запускается, когда приложение получает байты. Таким образом rec recModeType обновляется каждый раз, когда я отправляю байты разных типов. Так что я чувствую, что он работает так, как должен, но я упускаю что-то важное здесь. Если у кого-нибудь есть идея, как мне это сделать, или дайте мне несколько советов, которые будут очень признательны.
EDIT
Мне удалось это исправить и в конце концов даст ответ!