【发布时间】:2015-03-09 22:31:29
【问题描述】:
在为 UITableView 的高度设置动画时,通常会在 UITableViewCells 上获得不需要的动画。被重用的新单元格进来,并且在布局的子视图上有奇怪的不需要的动画。这通常在表格展开时可见。
动画通常看起来像是从角落弹出的对象,因为它出于某种原因将子视图的宽度和高度从 0 设置为它们应该的大小。
这可以通过覆盖单元格的 layoutSubviews 方法来解决。
- (void)layoutSubviews
{
[UIView performWithoutAnimation:^{
[super layoutSubviews];
}];
}
但这仍然不能阻止包含的子视图执行不需要的动画。当您将内容添加到单元格的 contentView 时,它也不会阻止不需要的动画。如果它也有子视图,你基本上必须覆盖你拥有的每个子视图的 layoutSubviews 方法。
这并不总是可行的,例如 contentView。我不能覆盖 contentView 类并告诉它在没有动画的情况下布置其子视图。这也是一个非常麻烦的修复,因为我需要将它添加到我能够覆盖的每个 UIView 对象中。
我仍然没有找到一劳永逸地解决这个问题的答案。如何仅对某事物的约束设置动画,但防止在其子视图上出现奇怪的不需要的动画。
【问题讨论】:
标签: ios animation constraints