Пользовательское разбиение на страницы UIScrollView с scrollViewWillEndDragging

Я пытаюсь использовать новый scrollViewWillEndDragging: withVelocity: targetContentOffset: вызов делегата UIScrollView в iOS 5, но я не могу заставить его действительно отвечать мне правильно. Я меняю значение targetContentOffset-> x, но оно никогда не используется. Я знаю, что код запускается, потому что он достигнет точки останова в этой функции. Я даже пытался установить значение смещения на жестко закодированное число, чтобы я знал, где оно закончится, но это никогда не срабатывает.

Кто-нибудь смог это правильно использовать и заставить работать? Есть ли какой-либо другой вызов делегата, который должен быть реализован для того, чтобы это работало?

Вот мой код на случай, если кто-то увидит с ним что-то не так:

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
    // goodOffsetX returns the contentOffset i want the scrollView to stop at
    CGFloat goodOffsetX = [self _horizontalContentOffsetForTargetHorizontalContentOffset:(*targetContentOffset).x velocity:velocity.x];

    NSLog( @" " );
    NSLog( @"scrollViewWillEndDragging" );
    NSLog( @"   velocity: %f", velocity.x );
    NSLog( @"   currentX: %f", scrollView.contentOffset.x );
    NSLog( @"   uikit targetX: %f", (*targetContentOffset).x );
    NSLog( @"   pagedX: %f", goodOffsetX );

    targetContentOffset->x = goodOffsetX; 
}
24
задан tr9sh 21 February 2012 в 13:57
поделиться