我有一个 UITableView,其单元格中有自定义子视图。当用户在单元格上滑动删除手势时,我的视图会缩小一会儿,同时出现“删除”按钮。
据我了解,这是由于出现“删除”按钮并且我的子视图需要变短时发生的一些系统动画。我将子视图的 contentMode 设置为 UIViewContentModeRedraw ,动画完成后一切看起来都很好。
我查看了它在内置邮件应用程序中的工作原理,那里一切都很好。
我怎样才能避免这种缩小?是否可以将此动画更改为“淡出”之类的?或者我可以在这个动画开始时让我的子视图立即变短吗?
解决方案:
最后,我通过以下方式子类化 UITableViewCell 并覆盖 layoutSubviews 方法找到了解决方案:
- (void)layoutSubviews
{
[super layoutSubviews];
UIView *view = [self.contentView viewWithTag:101];
CATransition *animation = [CATransition animation];
animation.duration = 0.2f;
animation.type = kCATransitionFade;
[view.layer removeAllAnimations];
[view.layer addAnimation: animation forKey:@"deletingFade"];
}
谢谢!