UIImageView 注意点
2016-05-25 本文已影响338人
Mr丶炎
1、 UIImageView的监听方法
2、 如何将图片保存到本地相册
3、 SDWebImage的常用方法
一、在很多时候,UIImageView都有与用户进行交互,但它和UIButton不同, 在不设置的情况下,点击图片是不可以监听的 , 下面是两个要点
// 图片点击
// 开启用户交互
self.imageView.userInteractionEnabled = YES;
// 添加手势识别器
[self.imageView addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showPicture)]];
二、将图片保存到本地, 用UIImageWriteToSavedPhotosAlbum方法
// 保存
- (IBAction)saveAction {
if (self.imageView.image == nil) {
[SVProgressHUD showErrorWithStatus:@"图片并没有下载完毕"];
return;
}
// 保存图片到本地, 要用下面的那个方法
UIImageWriteToSavedPhotosAlbum(self.imageView.image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
}
// 存储图片
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo {
if (error) {
[SVProgressHUD showErrorWithStatus:@"保存失败!"];
} else {
[SVProgressHUD showSuccessWithStatus:@"保存成功!"];
}
}
三、SDWebImage 监听图片下载, 在使用SDWebImage的时候,要设置是否明文
Snip20160526_1.png[imageView sd_setImageWithURL:[NSURL URLWithString:self.topic.large_image] placeholderImage:nil options:0 progress:^(NSInteger receivedSize, NSInteger expectedSize) {
self.progressView.hidden = NO;
[self.progressView setProgress:1.0 * receivedSize / expectedSize animated:YES];
} completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
self.progressView.hidden = YES;
}];