UIActivityIndicatorView

UIActivityIndicatorView

我的应用程序中只有一个部分的collectionView从API下载数据。我有一个分页,我试图在我的collectionView中添加一个加载页脚。标头正常显示。我在此页脚单元中有一个UIActivityIndi​​catorView和一个UILabel。当触发第一个极限时,单元格中存在2个元素,但是当触发第二个极限时,UIActivityIndi​​catorView不存在。

你有一个想法。

单元格的代码(BaseCell只是一个避免每次点击初始化和要求初始化的类):

class loadingCell: BaseCell {

    override func setupViews() {
        super.setupViews()

        backgroundColor = .yellow

        let activity = UIActivityIndicatorView()
        activity.backgroundColor = .red
        activity.startAnimating()
        activity.frame = CGRect(x: 10, y: 20, width: 20, height: 20)
        let label = UILabel()
        label.text = "hello"
        label.frame = CGRect(x: 100, y: 20, width: 40, height: 20)
        label.backgroundColor = .green


        addSubview(activity)
        addSubview(label)

    }

}


集合委托方法:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForFooterInSection section: Int) -> CGSize {
     return CGSize(width: SCREENW, height: 50)
}

func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {

    if kind == UICollectionElementKindSectionFooter {
        let loadingFooterView = collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionElementKindSectionFooter, withReuseIdentifier: loadingCell, for: indexPath)
        return loadingFooterView
    }

    return UICollectionReusableView()
}


该单元已正确注册。

触发第一个限制时会发生什么:

ios - UIActivityIndi​​catorView在CollectionView页脚中消失-LMLPHP

第二个:

ios - UIActivityIndi​​catorView在CollectionView页脚中消失-LMLPHP

最佳答案

基于@MaksymMusiienko的评论,我已经尝试过执行此操作以重置微调器的动画。

class loadingCell: BaseCell {

    let activitySpinner: UIActivityIndicatorView = {
       let spinner = UIActivityIndicatorView()
        spinner.backgroundColor = .red
        spinner.startAnimating()
        spinner.frame = CGRect(x: 10, y: 20, width: 20, height: 20)
        return spinner

    }()

    override func setupViews() {
        super.setupViews()

        backgroundColor = .yellow

        let label = UILabel()
        label.text = "hello"
        label.frame = CGRect(x: 100, y: 20, width: 40, height: 20)
        label.backgroundColor = .green


        addSubview(activitySpinner)
        addSubview(label)

    }

    override func prepareForReuse() {
        super.prepareForReuse()
        activitySpinner.startAnimating()
    }
}

关于ios - UIActivityIndi​​catorView在CollectionView页脚中消失,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47238787/

10-12 00:15