为什么不进行屏幕外更新的UICollectionViewCells?

西里尔

UICollectionView在水平流布局中显示自定义单元格;换句话说,某些内容位于屏幕边界之外。此外,我的手势会NSNotification导致我的单元格中某些元素(即主题)的颜色发生变化。除了屏幕边界之外的单元格不会全部更新为新的颜色变化之外,其他所有功能都可以正常运行。有什么办法强迫他们重画?

在调用的函数,当NSNotification被激发我试着与重绘收集观点self.collectionView.reloadData()self.collectionView.setNeedsDisplay()self.collectionView.setNeedsLayout但无济于事。我尝试了awakeFromNib()自定义单元格类中列表的最后两个,但是什么也没做。

这是我的代码cellForItemAtIndexPath

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
            let cell = popularCollectionView!.dequeueReusableCellWithReuseIdentifier("popular", forIndexPath: indexPath) as! PopularPainting
            cell.thumbnail.image = paintings[indexPath.row].paintingImage
            cell.name!.text = paintings[indexPath.row].paintingName
            cell.price!.setTitle(paintings[indexPath.row].paintingPrice, forState: UIControlState.Normal)
            if cell.isDark {
                cell.name!.textColor = UIColor(red: 205/255, green: 205/255, blue: 205/255, alpha: 1)
                cell.price!.setTitleColor(self.kPaleBlue, forState: .Normal)
                self.popularCollectionView.reloadData()
            }

            return cell
}

有什么建议?

注意:滚动到屏幕外的内容并重复手势以更改主题非常有效,因此我不知道发生了什么。

约翰·帕特里克·摩根

您认为集合视图中每个项目在屏幕外都存在单元格的假设是不正确的。实际上,表视图和集合视图重复使用了在屏幕外滚动显示的新单元格,因此,仅存在一个经过筛选的单元格。

reloadData通知触发后,您可以打电话但是您需要确保的实现collectionView:itemForRowAtIndexPath:会正确配置随后在屏幕上滚动的单元格。这可能意味着在通知触发后将状态更改保存在属性中,并在中配置单元格时检查该属性collectionView:itemForRowAtIndexPath:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

GEKKO为什么不进行初始测量?

来自分类Dev

为什么不进行比较就返回假?

来自分类Dev

为什么文件全局不进行分词?

来自分类Dev

为什么我的模板的if子句不进行反应式更新?

来自分类Dev

UICollectionViewCells 中的 CABasicAnimation 在屏幕外完成

来自分类Dev

请告知错误是什么...为什么不进行编译?

来自分类常见问题

WebSockets ping / pong,为什么不进行TCP keepalive?

来自分类Dev

为什么要从多个表中选择而不进行联接

来自分类Dev

我为什么要使用mercurial而不进行合并?

来自分类Dev

为什么这里不进行隐式转换?

来自分类Dev

为什么对WeakRef对象的WeakReference不进行垃圾收集?

来自分类Dev

为什么在我的情况下不进行整数提升?

来自分类Dev

为什么要从多个表中选择而不进行联接

来自分类Dev

为什么此@Transactional方法不进行多次保存

来自分类Dev

为什么不进行这种简单的Morte程序类型检查?

来自分类Dev

什么时候不进行“ svn commit && svn更新”?

来自分类Dev

为什么不进入if条件?

来自分类Dev

为什么不进入“ for循环”

来自分类Dev

DLL使用__stdcall而不进行名称修饰:为什么它甚至可以工作?

来自分类Dev

设置这些表单后,为什么我的表单不进行验证检查?

来自分类Dev

C#FormatException double.parse(),为什么不进行0.89解析?

来自分类Dev

捆绑程序为什么不进行“更改” Gemfile.lock而没有真正的更改?

来自分类Dev

为什么我的变量在strtok()和fgets()之后更改而不进行修改?

来自分类Dev

为什么不进行修改以使其无法利用?

来自分类Dev

如何在Python中进行调试:pdb为什么不进入函数调用?

来自分类Dev

如果未定义析构函数,为什么不进行返回值优化?

来自分类Dev

为什么对纽约证交所1个月的高/低数据不进行这种汇总?

来自分类Dev

为什么在第二个循环中不进行for循环打印?

来自分类Dev

设置这些表单后,为什么我的表单不进行验证检查?

Related 相关文章

  1. 1

    GEKKO为什么不进行初始测量?

  2. 2

    为什么不进行比较就返回假?

  3. 3

    为什么文件全局不进行分词?

  4. 4

    为什么我的模板的if子句不进行反应式更新?

  5. 5

    UICollectionViewCells 中的 CABasicAnimation 在屏幕外完成

  6. 6

    请告知错误是什么...为什么不进行编译?

  7. 7

    WebSockets ping / pong,为什么不进行TCP keepalive?

  8. 8

    为什么要从多个表中选择而不进行联接

  9. 9

    我为什么要使用mercurial而不进行合并?

  10. 10

    为什么这里不进行隐式转换?

  11. 11

    为什么对WeakRef对象的WeakReference不进行垃圾收集?

  12. 12

    为什么在我的情况下不进行整数提升?

  13. 13

    为什么要从多个表中选择而不进行联接

  14. 14

    为什么此@Transactional方法不进行多次保存

  15. 15

    为什么不进行这种简单的Morte程序类型检查?

  16. 16

    什么时候不进行“ svn commit && svn更新”?

  17. 17

    为什么不进入if条件?

  18. 18

    为什么不进入“ for循环”

  19. 19

    DLL使用__stdcall而不进行名称修饰:为什么它甚至可以工作?

  20. 20

    设置这些表单后,为什么我的表单不进行验证检查?

  21. 21

    C#FormatException double.parse(),为什么不进行0.89解析?

  22. 22

    捆绑程序为什么不进行“更改” Gemfile.lock而没有真正的更改?

  23. 23

    为什么我的变量在strtok()和fgets()之后更改而不进行修改?

  24. 24

    为什么不进行修改以使其无法利用?

  25. 25

    如何在Python中进行调试:pdb为什么不进入函数调用?

  26. 26

    如果未定义析构函数,为什么不进行返回值优化?

  27. 27

    为什么对纽约证交所1个月的高/低数据不进行这种汇总?

  28. 28

    为什么在第二个循环中不进行for循环打印?

  29. 29

    设置这些表单后,为什么我的表单不进行验证检查?

热门标签

归档