0

这个问题的目的不是知道 a 何时UITableView完成加载其数据(已在本文中回答),而是知道 a 何时UITableView完成绘制其所有单元格。

使用visibleCells里面的属性

- (UITableViewCell *)tableView:(UITableView *)iTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

方法不起作用,因为第一次加载 tableview 时,还没有可见的单元格。

这个想法是在刷新 tableview 时为单元格外观设置动画。

这似乎是一项复杂的任务,但我很惊讶 Apple 没有提供任何委托方法来在 tableview 加载完成时使用。

4

2 回答 2

0

最好试试这个方法,传递NSArray你想用给定动画集重新加载的 indexPaths

- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation  

希望它有效

于 2012-04-27T09:16:05.177 回答
0

我不相信有一种方法可以指示表格何时加载了它的单元格。但是,您可以实现在表格单元格中绘制动画的目标。

逻辑:

  1. UITableView 根据需要显示 UITableViewCells。
  2. 每个 UITableViewCell 都是 UIView 的子类。
  3. UIView 有 drawRect,每次绘制视图时都会调用它。
  4. 因此,将您的动画放入 UITableViewCell 的 drawRect 方法中,它会在绘制时进行动画处理。

执行:

  1. 创建 UITableViewCell 的子类,
  2. 将此子类应用于您的表格单元格,
  3. 添加 drawRect 方法,然后
  4. 在 drawRect 方法中实现你的动画。

我在我的一个项目中做到了这一点,效果很好。它在加载或滚动表格以及旋转显示器时绘制动画。使用这种方法,您不需要知道表格何时完成加载——每个单元格在绘制时都会被简单地动画化。

最后一点——如果你把另一个视图控制器放在你的表格视图之上然后关闭它,你可能需要重新加载表格并将每个 UITableViewCell 设置为 setNeedsDisplay。这将强制为每个 UITableViewCell 再次调用 drawRect。

于 2014-03-22T16:52:39.507 回答