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

  1. 将第三方SDWebImage导入到工程, 将原ARC的第三方加入到非MRC工程后,选择Build Phases然后在搜索框中收索SD,全部选中后回车,在弹出的框中添加-fobjc-arc
  2. 强制不报黄方法:#pragma clang diagnostic ignored “-Wignored-attributes”, 其中-Wignored-attributes为报黄原因
  3. 简单运用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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值