许多人可能已经注意到,有时当UITableView更改高度并因此显示新行时,这些行的内容会放错位置(例如,当它们都位于行的中心或行的最左侧部分时)或者等等)当行显示时,它们立即(动画地)移动到它们正确的原始位置。任何人都可以告诉我如何禁用这种动画?
谢谢
P.S:我知道我的描述不太清楚,所以我录制了一段视频来说明正在发生的事情,可以从this link进行访问。 (链接更新)
P.P.S:这也可以在Viber
和Whatsapp
等其他消息传递应用中看到。我已经从Viber
和Whatsapp
录制了相同效果的视频,但必须有一个解决方案来禁用它,这显然是Line
所做的。
答案 0 :(得分:0)
这个对我有用。当行数据到来时,第一次显示动画。
//这个函数是所有魔法发生的地方 - 在rowForCellAtIndexPath旁边调用
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
if(![arrObjectsDone containsObject:[NSString stringWithFormat:@"%d",indexPath.row]])
{
cell.frame = CGRectMake(640, cell.frame.origin.y, cell.frame.size.width, cell.frame.size.height);
[arrObjectsDone addObject:[NSString stringWithFormat:@"%d",indexPath.row]];
}
[UIView beginAnimations:@"rotation" context:NULL];
[UIView setAnimationDuration:1.0];
cell.frame = CGRectMake(0, cell.frame.origin.y, cell.frame.size.width, cell.frame.size.height);
[UIView commitAnimations];
}