Загрузка TableView после вызова CellForRowAtIndexPath - PullRequest
0 голосов
/ 31 октября 2019

это определенно не лучший способ сделать это, поэтому, если у вас есть лучший ответ, пожалуйста, я открыт для предложений ... Я новый программист. У меня есть профиль типа Instagram, отображающий 3 кнопки на ячейку ... imageView1, imageView2 и imageView3. Это кнопки, потому что когда пользователь нажимает на них, я хочу перейти к другому VC для отображения изображения. Итак, моя проблема в том, что я хочу заполнить кнопки изображениями из picPostArray. Я запускаю цикл for в CellForRowAtIndexPath. Я думаю, что это работает, однако я не уверен, как обновить таблицу для отображения новых данных. Все остальные данные моего профиля обновляются после ViewDidAppear и работают нормально. Спасибо:)

                 CellForRowAtIndexPath:
                 for i in 0..<picPostArray.count/3 {

                        cell.imageView1.imageView!.image = picPostArray[(i * 3) + 0]

                        cell.imageView2.imageView!.image = picPostArray[(i * 3) + 1]

                       cell.imageView3.imageView!.image = picPostArray[(i * 3) + 2]



        }

                    return cell

                }
      return UITableViewCell()
    }

1 Ответ

0 голосов
/ 31 октября 2019

Если вы хотите перезагрузить ваши данные, вы должны использовать tableView.relaodData().

Кстати, если вы хотите, чтобы в вашем массиве всегда было 3 изображения, вы можете сделать что-то вроде этого:

if picPostArray.count == 3 {
      cell.imageView1.imageView!.image = picPostArray[0]
      cell.imageView2.imageView!.image = picPostArray[1]
      cell.imageView3.imageView!.image = picPostArray[2]
    }

В противном случае, если ваш массив будет динамическим, но кратным 3.

let row = indexPath.row 
 cell.imageView1.imageView!.image = picPostArray[row * 3 + 0]
 cell.imageView2.imageView!.image = picPostArray[row * 3 + 1]
 cell.imageView3.imageView!.image = picPostArray[row * 3 + 2]
...