SDWebImage动画加载图片
效果
源码
https://github.com/YouXianMing/Animations
// // PictureCell.m // SDWebImageLoadImageAnimation // // Created by YouXianMing on 15/4/30. // Copyright (c) 2015年 YouXianMing. All rights reserved. // #import "PictureCell.h" #import "UIImageView+WebCache.h" #import "PictureModel.h" #import "UIView+AnimationProperty.h" @interface PictureCell () @property (nonatomic, strong) UIImageView *iconImageView; @end @implementation PictureCell - (void)setupCell { self.selectionStyle = UITableViewCellSelectionStyleNone; } - (void)buildSubview { self.iconImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)]; [self addSubview:self.iconImageView]; } - (void)loadContent { // 图片模型 PictureModel *model = self.data; // 进行图片下载 SDWebImageManager *manager = [SDWebImageManager sharedManager]; // 加载图片(动画逻辑) [manager downloadImageWithURL:model.pictureUrl options:0 progress:nil completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) { if (image) { // 如果没有执行过动画 if (model.haveAnimated.boolValue == NO) { // 将动画设置成已经执行了 model.haveAnimated = @(YES); self.iconImageView.alpha = 0.f; self.iconImageView.image = image; self.iconImageView.scale = 2.f; // 执行动画 [UIView animateWithDuration:0.5f animations:^{ self.iconImageView.alpha = 1.f; self.iconImageView.scale = 1.f; }]; } else { // 直接设置 self.iconImageView.image = image; self.iconImageView.scale = 1.f; } } }]; } @end
细节