iPhone: Дождаться окончания анимации selectrow, прежде чем нажать viewcontroller? - PullRequest
1 голос
/ 14 марта 2010

Мой код выглядит так:

NSIndexPath *ip = [NSIndexPath indexPathForRow:15 inSection:0];
[[self tableView] selectRowAtIndexPath:ip animated:YES scrollPosition:UITableViewScrollPositionMiddle];

// Pause needed here until animation finishes

[[self navigationController] pushViewController:secondView animated:YES];

Прямо сейчас он анимирует прокрутку / выбор строки и одновременно нажимает контроллер представления. Я хотел бы подождать, пока он не закончит прокрутку / выделение, а затем нажать контроллер вида Есть ли возможный способ сделать это? Спасибо

Ответы [ 2 ]

2 голосов
/ 14 марта 2010

Табличное представление должно вызвать scrollViewDidEndScrollingAnimation, когда прокрутка заканчивается. Попробуйте вставить толчок в этот метод:

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
{
    if (weShouldPushSecondView)
    {
        weShouldPushSecondView = NO;
        [[self navigationController] pushViewController:secondView animated:YES];
    }
}

Возможно, вам потребуется использовать bool ivar, для которого вы установили значение YES сразу после selectRowAtIndexPath, поскольку scrollViewDidEndScrollingAnimation может вызываться в другое время для других прокруток.

0 голосов
/ 14 марта 2010

Есть ли причина, по которой вы не используете контроллер представления в вашем -tableView:didSelectRowAtIndexPath: методе делегата? Этот метод следует вызывать после завершения анимации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...