Я предполагаю, что вы не используете никаких дополнительных потоков для обработки данных.То, что вы испытываете, - приложение застряло, выполняя ваш метод.Даже если вы добавляете свои подпредставления один за другим (с перерывом между ними), никакой другой фрагмент кода не выполняется для обработки вашего добавления.
1 .Вы можете использовать другой поток для загрузки данных и добавления подпредставлений, но это необходимо синхронизировать с основным потоком (более сложно).
2 Вы можете разбить ваш метод на несколько вызовов.Между 2 вызовами вашего метода загрузки разрешено выполнение других фрагментов кода, и это означает, что scrollview сможет обрабатывать / отображать ваши подпредставления один за другим.
Вам нужно будет изменить метод загрузки на что-токак это:
- (void)updateCarouselStep:(NSNumber*)loadIndex
{
if (response && response.count > 0)
{
// Here add only a subview corresponding to loadIndex
// Here we schedule another call of this function if there is anything
if (loadIndex < response.count - 1)
{
[self performSelector:@selector(updateCarouselStep:) withObject:[NSNumber numberWithInt:(loadIndex+1) afterDelay:0.5f];
}
}
}
Это только одно из основных решений проблемы.Например, вам необходимо принять во внимание, что произойдет, если вы обновите данные response
до того, как завершите загрузку предыдущих.