当我在UITableView中选择一行时,我在该行帧的GCRect上调用scrollRectToVisible:animated,然后立即执行其他一些动画处理。我的问题是,我不知道scrollRectToVisible:animated中的动画何时完成。

我的代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView cellForRwoAtIndexPath:indexPath];

    [self.tableView scrollRectToVisible:cell.frame animated:YES];

    //more animations here, which I'd like to start only after the previous line is finished!
}

最佳答案

协议(protocol)UITableViewDelegate符合UIScrollViewDelegate。您可以在手动滚动时设置BOOL参数,然后在scrollViewDidScroll:中进行检查

BOOL manualScroll;
...
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView cellForRwoAtIndexPath:indexPath];

    manualScroll = YES;
    [self.tableView scrollRectToVisible:cell.frame animated:YES];
}
...
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (manualScroll)
    {
        manualScroll = NO;
        //Do your staff
    }

}

不要忘记设置UITableViewDelegate

关于ios - 在UITableView中,我如何知道scrollRectToVisible在一行中何时完成?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9929228/

10-08 21:47