首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UICollectionView在分页期间不更新单元格

UICollectionView在分页期间不更新单元格
EN

Stack Overflow用户
提问于 2018-10-25 13:26:06
回答 1查看 113关注 0票数 0

我有一个水平分页启用的UICollectionView,每个单元格填充整个屏幕并包含一个ImageView

我想要的是更新两个正在分页的单元格(如果您从0页转到1页,我想在中间更新它们)。

因此,我夸大了以下方法:

代码语言:javascript
复制
public func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
        let pageWidth = collectionView.frame.size.width
        var currentPage = collectionView.contentOffset.x / pageWidth
        if (0.0 != fmodf(Float(currentPage), 1.0)) {
            currentPage += 1
        }

        let indexPath = IndexPath(row: Int(currentPage), section: 0)
        guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "MyCell", for: indexPath) as? MyCell else {
            return
        }

        // This cell is moving out of screen
        cell.image.isHidden = true

    }

代码语言:javascript
复制
public func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
        let pageWidth = collectionView.frame.size.width
        var currentPage = collectionView.contentOffset.x / pageWidth
        if (0.0 != fmodf(Float(currentPage), 1.0)) {
            currentPage += 1
        }

        guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "MyCell", for: IndexPath(row: Int(currentPage), section: 0)) as? MyCell else {
            return
        }
        // This cell entered the screen
        cell.image.isHidden = false
    }

问题是,图像隐藏状态的任何更改都不会生效,如果我打印cell.image.isHidden,它将显示正确的状态,但ui没有更新。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-25 13:45:31

替换每一个

代码语言:javascript
复制
guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "MyCell", for: indexPath) as? MyCell else {
        return
}

使用

代码语言:javascript
复制
guard let cell = collectionView.cellForItem(at:indexPath) as? MyCell else {
        return
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52990434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档