我有一个包含相当复杂单元格的表格视图。该单元格包含一个按钮,当按下该按钮时,应展开该单元格并显示一些额外的控件。我认为这会很简单,所以我编写了以下代码(在我从 UITableViewCell 派生的类中):
self.extraView = [[MyView alloc] initWithFrame:CGRectMake(0,100,300,200)];
self.extraView.clipsToBounds = YES;
[self addSubview:self.extraView];
self.extraView.transform = CGAffineTransformMakeScale(1, 0.1f);
[UIView animationWithDuration:0.5 animations:^{
[tableView beginUpdates];
[tableView endUpdates];
self.extraView.transform = CGAffineTransformIdentity;
}];
令人惊讶的是,这会extraView
在屏幕上短暂闪烁,然后消失。如果我删除对的调用beginUpdates
,endUpdates
然后extraView
完全按照我的预期进行动画处理。但是,表格单元格不够大,无法显示它。我尝试将 alpha 设置为 0,然后在表更新期间将其淡入,这似乎工作正常。不幸的是,我应该让extraView
生长在适当的位置而不褪色。
我尝试过各种修改方式,extraView
例如更改框架,但表格更新总是会产生一些副作用。我还尝试在完成处理程序中链接比例更改,这当然也不起作用。我认为这是因为执行完成块时表格视图没有完成动画。
有没有办法在表格更新期间为单元格中的视图框架设置动画?