Если я правильно вас понимаю, кажется, что вы хотите, чтобы ваши UIImageView (которые лениво загружались в режиме реального времени) постепенно исчезали, как только они полностью загрузились. И пока они загружаются, отобразите вращающееся колесо UIActivityIndicatorView.
Вот что я предлагаю:
1) Вместо определения пользовательского представления в ячейке таблицы как UIImageView, просто используйте более универсальный UIView. Это потому, что оба класса (UIImageView и UIActivityIndicatorView) являются подклассами и могут быть установлены как таковые.
2) Первоначально для любой и всех ячеек установите UIView в UIActivityIndicatorView (не забудьте использовать «startAnimating», чтобы заставить его вращаться), а затем в функции обратного вызова для завершения загрузки перейдите к соответствующему ячейку и установите этот пользовательский UIView для загруженного UIImageView.
3) Чтобы добиться эффекта затухания, посмотрите следующий код:
// Sets the image completely transparent
imageView.alpha = 0.0f;
// Animates the image to fade in fully over 1.0 second
[UIView animationWithDuration:1.0f animations:^{
imageView.alpha = 1.0f;
}];
4) Возможно, вам потребуется вызвать "setNeedsDisplay" для ячейки таблицы, чтобы обновить ее подпредставления после установки нового представления изображения и перед его анимацией.