Создание анимации карусели для рандомного выбора значения

Друзья, нужна помощь в решении задачи.
Цель: Создать карусель для выбора рандомных значений, как на видео ниже:
введите сюда описание изображения

Попробовал два подхода:

  1. Загрузил в UITableView список значенй, указал большое количество ячеек в секции, попробовал запустить метод

    - (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated;

Результат: Анимация не срабатывает, таблица просто прокручивается к заданной ячейке.

Код с анимацией прокрутки:

     [UITableView animateWithDuration:10.f
                                   delay:0.f
                  usingSpringWithDamping:5.f
                   initialSpringVelocity:10.f
                                 options:UIViewAnimationOptionCurveLinear
                              animations:^{

            NSInteger randomIndexRow = arc4random() % ([self.rewards count]*1000) + 1;

            [self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:randomIndexRow inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:YES];

        }
                              completion:^(BOOL finished) {
            NSLog(@"Two animation finished");

        }];
  1. Создание большого количества UILabel и анимация UILabel.

Результат: Не получается задать синхронное смещение вниз и отрисовку UILabel сверху.

    - (void) animationStart {

    [UIScrollView animateWithDuration:10.f
                          delay:0.f
                        options:UIViewAnimationOptionCurveLinear
                     animations:^{

        NSLog(@"Start first animation");

            CGRect frameLabel = CGRectMake(0, self.view.frame.size.height, 414, 60);


             NSMutableArray* tempLabelArray = [[NSMutableArray alloc] initWithArray:self.labelRewardArray];

             for (int i = [tempLabelArray count] - 1; i >= 0; i--) {

                 UILabel* tempLabel = [tempLabelArray objectAtIndex:i];

                 tempLabel.frame = frameLabel;

                 frameLabel = CGRectMake(0, frameLabel.origin.y + tempLabel.frame.size.height+1, 414, 60);

                 NSLog(@"Anitame tempLabel: %d", i);


             };


    } completion:^(BOOL finished) {

    }];




}

Прошу помочь в реализации данной задачи.

Спасибо.


Ответы (0 шт):