动画前在 UICollectionView 中使用 Core Data 加载数据

Posted

技术标签:

【中文标题】动画前在 UICollectionView 中使用 Core Data 加载数据【英文标题】:Load data with Core Data in UICollectionView before animation 【发布时间】:2016-11-04 11:09:40 【问题描述】:

我是 ios 开发的新手,但我找不到这个问题的答案(也许我找不到合适的关键字来搜索..?)。

无论如何,我有这个“问题”:

我有 2 个故事板,A 和 B,里面都有一些视图。 我通过@IBAction 从视图 A-2 转到视图 B-1 - 一个简单的按钮单击 - 使用以下代码:

 @IBAction func onExercisesButtonTapped(_ sender: AnyObject) 
    let storyboard = UIStoryboard(name: "Exercises", bundle: nil)
    let controller = storyboard.instantiateViewController(withIdentifier: "ExercisesVC") as UIViewController

    controller.modalTransitionStyle = UIModalTransitionStyle.crossDissolve
    present(controller, animated: true, completion: nil)    

另一方面,在 B-1 视图中,我有一个 UICollectionView,其中填充了来自 CoreData 模型的数据。 UICollectionView 中的单元格仅在动画完成后出现。如果我在 perform 函数中设置了 animated: false 并且因此没有从 A-2 视图到 B-1 视图执行动画,则单元格立即可见。

单元格是动画完成后唯一出现的元素。这种行为的原因是什么?我可以通过某种预加载/预取或其他方法避免它吗?

有没有办法在动画开始之前显示单元格,就像 UICollectionView 背景和视图中的所有其他元素一样?

提前谢谢你:)

【问题讨论】:

无论演示文稿是否为动画,您的CollectionViewCells 都不会出现在这两种情况下吗?你在哪里从CoreData 模型中获取数据? 当然,它在两种情况下都会出现,但是如果演示文稿没有动画,它会立即出现,而如果它是动画的,它会等待动画结束以显示单元格。 【参考方案1】:

viewWillAppear: 中更新您的视图。

【讨论】:

以上是关于动画前在 UICollectionView 中使用 Core Data 加载数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 UIDynamics Swift 为 UICollectionView 设置动画

如何使用 UICollectionView 在 Pages 中重新创建重命名动画?

自定义布局中约束更改的动画 UICollectionView 项目

在 deleteItemsAtIndexPaths 上的 UICollectionView 中动画 contentOffset 更改

iOS:使用约束动画 UICollectionView 垂直扩展?

iOS中删除单元格时UICollectionView的动画时间