animateWithDuration
, success
satırını sağlayan setImageWithURL
yorumlamasıyla birlikte kullanabilirsiniz.
[imageView setImageWithURL:[NSURL URLWithString:@"http://i.imgur.com/r4uwx.jpg"]
placeholderImage:[UIImage imageNamed:@"placeholder-avatar"]
success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
[UIView transitionWithView:self.imageView
duration:0.3
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{
self.imageView.image = image;
}
completion:NULL];
}
failure:NULL];
Güncelleme:: Bu arada
, sen eğer görüntü boş değil yer tutucuya, muhtemelen çapraz transitionWithView
yoluyla çözülür isteyeyim
[imageView setImageWithURL:[NSURL URLWithString:@"http://i.imgur.com/r4uwx.jpg"]
placeholderImage:[UIImage imageNamed:@"placeholder-avatar"]
success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
self.imageView.alpha = 0.0;
self.imageView.image = image;
[UIView animateWithDuration:0.25
animations:^{
self.imageView.alpha = 1.0;
}];
}
failure:NULL];
Veya, İndirme işlemi tamamlanıncaya kadar resim görünümünün (ve self
, görünüm veya görünüm denetleyicisine de baktığınızda) korunabileceği gerçeğinden endişe duyabilirsiniz:
__weak UIImageView *weakImageView = self.imageView;
[imageView setImageWithURL:[NSURL URLWithString:@"http://i.imgur.com/r4uwx.jpg"]
placeholderImage:[UIImage imageNamed:@"placeholder-avatar"]
success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
UIImageView *strongImageView = weakImageView; // make local strong reference to protect against race conditions
if (!strongImageView) return;
[UIView transitionWithView:strongImageView
duration:0.3
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{
strongImageView.image = image;
}
completion:NULL];
}
failure:NULL];
Eğer indirme tamamlanıncaya kadar resim görünümü korunur, böylece siz de isteğe bağlı olarak görünümü denetleyicisi dealloc
yönteminde Devam etmekte olan bir indirme işlemini iptal olabilir yapsan bile:
- (void)dealloc
{
// if MRC, call [super dealloc], too
[_imageView cancelImageRequestOperation];
}
Yine de devir döngülerine dikkat edin. –
@MarceloFabri detaylandırır mısınız? Hangi devir tutmak? – timpone
Rob, yükleme için Fade efektinin yapılıp yapılmayacağını biliyor musunuz? Demek istediğim:% 0 yüklendi = opaklık 0.0,% 100 yüklendi - donukluk 1,0 –