Представление содержимого CollectionView не обновляется / не обновляется при загрузке viewdidload

#ios #swift #xcode #uicollectionview

#iOS #быстрый #xcode — код #uicollectionview uicollectionview

Вопрос:

Я хочу иметь это представление прогрессии (pod) внутри каждой ячейки collectionviewcell. Когда я запускаю приложение, прогрессия составляет 0%, оно должно анимироваться до 100% для тестирования, но оно остается на уровне 0%. Только когда я провожу пальцем вверх и вниз (обновляю ячейки ???) он начинает анимироваться на 100%. Это мой код:

     import UIKit
import MKRingProgressView

class myCollectionViewCell: UICollectionViewCell {
    @IBOutlet weak var ringView: UIView!
    let ringsize = 150
    var ringProgressView = RingProgressView()
    override func layoutSubviews() {
         ringProgressView = RingProgressView(frame: CGRect(x: 0, y: 0, width: ringsize, height: ringsize))
        ringProgressView.startColor = .red
        ringProgressView.endColor = .magenta
        ringProgressView.ringWidth = CGFloat(ringsize) * 0.15
        ringProgressView.progress = 0.0
        ringProgressView.shadowOpacity = 0.5
        ringView.addSubview(ringProgressView)
    }
}

extension myCollectionViewCell{
    func setProgress(progress: Double){
        UIView.animate(withDuration: 0.5){
            self.ringProgressView.progress = progress
        }
    }
}


    import UIKit

private let reuseIdentifier = "Cell"

class myCollectionViewController: UICollectionViewController {

    @IBOutlet var myCollectionView: UICollectionView!
    var cellColor = true
    
    override func viewDidLoad() {
        super.viewDidLoad()
    }


    override func numberOfSections(in collectionView: UICollectionView) -> Int {
        return 1
    }


    override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        // #warning Incomplete implementation, return the number of items
        return 7
    }

    override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! myCollectionViewCell
    
        cell.setProgress(progress: 1.0)
        return cell
    }
}
 

скриншот
Кто-нибудь может мне помочь? Спасибо!!

Ответ №1:

Вызовите myCollectionView.reloadData() внутренний viewDidAppear метод.

Комментарии:

1. I остается на уровне 0%:(

2. Можете ли вы протестировать вызов этого внутреннего viewDidAppear метода?