动画前在 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 更改