#iphone #objective-c #ios
#iPhone #objective-c #iOS
Вопрос:
Как я могу лениво загружать изображения в ячейку UITableView с эффектом затухания при загрузке изображения?
Ответ №1:
SDImageWeb — довольно хорошая библиотека, которая делает то, что вам нужно. У него даже есть кэш изображений, поэтому, как только изображения будут загружены, в следующий раз они будут выбраны из локальной флэш-памяти.
Чего это не дает, так это fadeIn
эффекта. Но это довольно легко добавить с UIView
анимацией.
Итак, чтобы асинхронно загрузить изображение, [imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]];
вот и все..
Чтобы вставить анимацию fadein.
- (void)fadeInLayer:(CALayer *)l
{
CABasicAnimation *fadeInAnimate = [CABasicAnimation animationWithKeyPath:@"opacity"];
fadeInAnimate.duration = 0.5;
fadeInAnimate.repeatCount = 1;
fadeInAnimate.autoreverses = NO;
fadeInAnimate.fromValue = [NSNumber numberWithFloat:0.0];
fadeInAnimate.toValue = [NSNumber numberWithFloat:1.0];
fadeInAnimate.removedOnCompletion = YES;
[l addAnimation:fadeInAnimate forKey:@"animateOpacity"];
return;
}
Чтобы вызвать это — [self fadeInLayer: imageView.layer];
Это должно сработать. Это анимирует ваше изображение от альфа 0 до 1 за 0,5 секунды! Чтобы придать замечательное затухание анимации.
Комментарии:
1. Спасибо, чувак. Можете ли вы сказать мне, как добавить эффект затухания программно? Когда пользователь прокручивает и видит другие UIImageViews, я бы использовал эффект fadeIn для отображения изображений.
Ответ №2:
Вы ссылаетесь на асинхронные изображения. Есть отличная статья, доступная по адресу: http://www.markj.net/iphone-asynchronous-table-image /
В connectionDidFinishLoading просто поместите позже после этого
UIImageView* imageView = [[[UIImageView alloc] initWithImage:[UIImage imageWithData:data]] autorelease];
//Paste below code here
чтобы это исчезло:
//Paste following here
imageView.alpha = 0.0f;
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5f];
imageView.alpha = 1.0f;
[UIView commitAnimations];
Комментарии:
1. Спасибо, но мне нужно, чтобы эффект исчез.