您的位置:首页 > 其它

37.第三方(SDWebImage)的简单应用

2015-08-15 08:26 274 查看
将第三方SDWebImage导入到工程, 将原ARC的第三方加入到非MRC工程后,选择Build Phases然后在搜索框中收索SD,全部选中后回车,在弹出的框中添加-fobjc-arc

强制不报黄方法:#pragma clang diagnostic ignored “-Wignored-attributes”, 其中-Wignored-attributes为报黄原因

简单运用ViewController.m文件

#import "ViewController.h"
#import "UIImageView+WebCache.h"//网络缓存图片
#import "UIImage+GIF.h"//动画图片

@interface ViewController ()<UIActionSheetDelegate,UINavigationControllerDelegate,UIImagePickerControllerDelegate>
@property(nonatomic,retain)UIImageView *imageview;
@end

@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.imageview = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)];
self.imageview.backgroundColor = [UIColor yellowColor];
[self.view addSubview:self.imageview];
[_imageview release];

//加载网络图片,加载成功后会把图片缓存到本地,第二次就直接从本地取得
[self.imageview sd_setImageWithURL:[NSURL URLWithString:@"http://v.juhe.cn/movie/picurl?2583083"]];
//播放gif动画图片,图片名不要加.gif
self.imageview.image = [UIImage sd_animatedGIFNamed:@"])EHD9MH4@C05%`J}K}O8J7"];

//创建一个actionSheet从本地相册选择图片
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"选择图像" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"从相册中取", nil];
[actionSheet showInView:self.view];
[actionSheet release];

//天加一个长按手势把图片保存到本地相册
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPress:)];
self.imageview.userInteractionEnabled = YES;//交互一定要打开
longPress.minimumPressDuration = 2;
[self.imageview addGestureRecognizer:longPress];
[longPress release];
}


#pragma mark  UIActionSheet  delegate
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0) {
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
//设置代理人,这个地方很特别,这个代理人需要执行两套协议,需要签订两个协议
picker.delegate = self;
//允许进行编辑
picker.allowsEditing = YES;
//控制器显示的方式(push,模态视图)
//让他显示出来,用模态显示出来
[self presentViewController:picker animated:YES completion:^{
}];
}
}
- (void)longPress:(UILongPressGestureRecognizer *)longPress
{
//把图片写入到本地相册,判断手势当前状态,只有刚开始会保存图片
if (longPress.state == UIGestureRecognizerStateBegan) {
UIImageWriteToSavedPhotosAlbum(self.imageview.image, nil, nil, nil);
}
}
#pragma mark UIImagePickerController  delegate
//点击choose之后,可以选中当前的图片,并且返会让图片那显示在imageview上
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
//隐藏的效果就取消了,所以我们需要手动添加dismiss的方法,让相册消失
[self dismissViewControllerAnimated:YES completion:^{
}];
//从返回过来的字典对象info中提取image
UIImage *image = info[UIImagePickerControllerEditedImage];
self.imageview.image = image;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: