Как затянуть процесс загрузки изображений с помощью UIActivityIndicatorView? - PullRequest
2 голосов
/ 03 июля 2011

Я создал пользовательский UITableViewCell.Моя пользовательская ячейка содержит ImageView для изображения текущей статьи.При создании изображения ячейки будут загружены из Интернета и отображены в UIImageView.Как я могу затемнить процесс загрузки с ActivityIndicatorView?

Извините за плохой английский :-) Я использую онлайн-переводчик.

1 Ответ

1 голос
/ 06 июля 2011

Если я правильно вас понимаю, кажется, что вы хотите, чтобы ваши 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" для ячейки таблицы, чтобы обновить ее подпредставления после установки нового представления изображения и перед его анимацией.

...