UITableView -insertRowsAtIndexPaths:UIDatePicker的性能

时间:2014-10-06 18:40:48

标签: ios uitableview uidatepicker

我想在我的tableview中插入带有UIDatePicker的UITableViewCell。

我正在使用以下代码:

        NSIndexPath *insert = [NSIndexPath indexPathForRow:indexPath.row + 1 inSection:indexPath.section];
        self.datePickerIndexPath = insert;
        [self.tableView insertRowsAtIndexPaths:@[insert] withRowAnimation:UITableViewRowAnimationAutomatic];

单元格是一个简单的UITableViewCell子类,它在一个nib中定义,并在contentView中放置了一个UIDatePicker。

我发现我遇到动画的性能问题 - 当要显示日期选择器时,我会得到一个生涩的动画。隐藏datePicker不会出现这样的问题。

我对动画进行了分析,看来UIDatePicker的layoutSubviews中正在进行大量的工作。

使用UIDatePicker制作动画时是否有人能够克服性能问题?我怎样才能提高性能呢?

感谢

更新

似乎日期选择器不是问题。

在Core Animation Instruments中进行分析后,无论单元格是否具有日期选择器,帧速率似乎都会下降。即使是空白单元也不具备性能。我无法追踪导致细胞插入的确切原因。

更新

看起来好像44分钟可以平滑地动画,但如果我把它变大,它会跳跃。实现以下方法:

- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath

似乎可以解决问题

0 个答案:

没有答案