当用户执行某些操作时,我需要从底部拉起UICollectionView
直到某个高度。由于该新状态是完全可选的,所以在以这种方式呈现之前创建集合视图。从底部到顶部的动画是使用NSLayoutConstraint的constant
属性更改以及在某些动画块中调用[view layoutIfNeeded]
执行的。当呈现UICollectionView时防止UICollectionViewCell动画外观
问题是,这样做会使单元格以不希望的方式出现:它们从左上角扩展到指定大小。我希望集合视图能够出现,并且它的所有单元格都已经按照其最终大小和外观进行了布局。
我知道像UIView的setAnimationEnabled:
方法,但我似乎无法找到如何以及在哪里我应该使用(如果这是要走的路)。
我想这个问题是由于集合视图单元格被添加到视图层次结构中,恰好在包含对[superview layoutIfNeeded]
的调用的动画块之前。这可能导致UIKit认为它应该动画那些更改布局。如果是这种情况,解决方案可能会沿着从动画中排除的方式,对视图层次结构进行特定的更改。
运行到我的应用程序一些类似的错误 - 对例如,当我在模拟器中启动它时,整个应用程序的屏幕从左上角向外扩展,某些文本片段有时会跳转到其超级视图的左角,然后生成向下的动画。同样,我在我的应用程序的不同部分制作了几个带有约束的动画。希望能回答这个问题:) –