1

需要知道 scrollToRowAtIndexPath 是否滚动完成。

不能使用滚动例程,因为行已经就位并且表格不滚动。

如果可能的话,不想使用一些计时器/失效来做到这一点。

4

2 回答 2

0

在调用之前[tableView scrollToRowAtIndexPath:indexPath...,请执行以下操作:

BOOL visible = NO;
for (UITableViewCell *cell in [tableView visibleCells])
    if ([indexPath isEqual:[tableView indexPathForCell:cell]]) {
        visible = YES;
        break
    }

如果需要,将可见存储为视图控制器的成员变量,以便在处理某些委托方法时检查其值。

于 2013-06-04T20:01:21.453 回答
0

原来必须使用 NSTimer 等。这是怎么回事......如果有人有更好的方法......

In routine that tells the indexPath to scroll to
 Scroll to IndexPath
 tableMoving = true
 set NSTimer to fire MovingDone at 0.1

In scrollViewDidScroll
 if tableMoving
   invalidate timer
   timer = nil

In scrollViewDidEndScrollingAnimation
 if tableMoving
    call MovingDone

In MovingDone
 moving = false
 // do end of table scrolling code here
于 2013-06-05T15:39:34.353 回答