Как обновить пользовательские свойства ячейки Collectionview на UIViewController - PullRequest
0 голосов
/ 23 сентября 2019

Моя пользовательская ячейка имеет свойство изображения.

class AODCameraCollectionViewCell: UICollectionViewCell, NibReusable {

@IBOutlet weak var lblCount: UILabel!
@IBOutlet weak var imgAddCamera: UIImageView!
@IBOutlet weak var viewMain: AODView!
@IBOutlet weak var imgBattery: UIImageView!
@IBOutlet weak var imgWifi: UIImageView!

на моем контроллере просмотра

@IBOutlet weak var viewCameraCollection: UICollectionView!
...
//Setup camera collection
viewCameraCollection.register(cellType: AODCameraCollectionViewCell.self)
viewCameraCollection.delegate =  self
viewCameraCollection.dataSource = self

и в источнике данных CollectionView у меня есть

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell: AODCameraCollectionViewCell = collectionView.dequeueReusableCell(for: indexPath)
    cell.lblCount.isHidden = true
    let c = viewModel.cameras[indexPath.row]

    if viewModel.currentMode == .multi {
        Logger.i("Showing for index: \(indexPath.row)")
        if cell.player == nil, let l = c.link {
            let player = playVideo(inView: cell.viewMain, withURL: l)
            viewModel.setMediaPlayer(forKey: c.id, withPlayer: player)
            cell.player = player
            cell.viewType = .preview
        } else if c.feedFromPhone {
            cell.viewType = .phoneCamera
            let feed = AODCameraFeedView(frame: .zero)
            feed.delegate = self
            viewCameraFeed = feed
            cell.viewMain.addSubview(feed)
            feed.snp.makeConstraints { (maker) in
                maker.edges.equalToSuperview()
            }
        } else if c.link == nil  && !c.feedFromPhone{
            cell.viewType = .empty
        }
    }


    return cell
}

Есть ликаким образом я могу получить доступ к своим пользовательским свойствам изображения ячейки, изменить его и затем обновить ячейку, не добавляя новую ячейку?

Ответы [ 2 ]

0 голосов
/ 23 сентября 2019

Используйте функцию CellForItemAtIndexPath и укажите индекс ячейки, к которой вы хотите получить доступ.Затем вы можете обновить всех членов этой конкретной ячейки.После обновления просто перезагрузите collectionView.

0 голосов
/ 23 сентября 2019

Привет, просто перезагрузите представление коллекции в соответствии с вашими требованиями.

ex: -

 @objc func reloadCollectionViewAction(sender: UIButton!) {

 DispatchQueue.main.async {
           self. viewCameraCollection.reloadData()
        }

    }
...