在动画块中调用[self.view layoutIfNeeded];
会导致其所有子视图设置动画。
这会导致滚动UICollectionView
时出现问题,因为UICollectionViewCells
会动画到屏幕上。
无论如何,我可以阻止Portsmouth
单元格动画制作吗?
** 编辑 **
为了增加对伤害的侮辱,我正在制作控制UICollectionView
高度的约束。为了增加Feed的大小,我有一个消失的UIView
就像一个标题。
答案 0 :(得分:4)
您可以在任何视图上layoutIfNeeded
,因此可以考虑更改单元格的视图层次结构,以隔离包含需要动画的约束的视图。因此,您的layoutIfNeeded
调用仅触发您要设置动画的约束的动画。那有意义吗?
这意味着将UIView插入到您的层次结构中,此视图将成为您通过约束设置动画的视图的超级视图。
答案 1 :(得分:0)
我花了好几个小时试图修复这个错误,最后我找到了解决方案:
[UIView setAnimationsEnabled:NO];
// Layout cell
[UIView setAnimationsEnabled:YES];
我一直在使用框架,而不是自动布局,但也许有一种方法可以禁用动画以进行约束布局。
编辑:
你可以尝试:
-(void)layoutSubviews
{
[UIView setAnimationsEnabled:NO];
[super layoutSubviews];
[UIView setAnimationsEnabled:YES];
}