ios--保存图片到本地相册

本文介绍如何在iOS应用中实现保存图片到本地相册的功能。通过使用特定的方法,配合selector和contextInfo参数,可以在长按手势触发后将图片保存至用户的设备相册。提供了一个具体的Demo来详细展示这一过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在一个视图中有一个UIImageView,当单击此UIImageView,将UIImageView中的UIImage所代表的图片保存到Photo Album中。

要用到的方法

UIImageWriteToSavedPhotosAlbum([imageView image], nil, nil, nil);
说明
UIImageWriteToSavedPhotosAlbum是UIKit框架中的一个函数。
这里说一下后面三个参数的含义:

void UIImageWriteToSavedPhotosAlbum (
   UIImage  *image,
   id       completionTarget,
   SEL      completionSelector,
   void     *contextInfo
);
1.id是target对象

2.sel是selector即target对象上的方法名

3.contextInfo是任意指针,会传递到selector定义的方法上。一般是当完成后调用方法时使用,或者在完成时出错的处理。

通过一个Demo具体演示

首先创建一个长按手势

    UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(LongPress:)];
    longPress.minimumPressDuration = 1.0;
    [_scrollView addGestureRecognizer:longPress];
-(void)LongPress:(UILongPressGestureRecognizer *)press
{
    if (press.state==UIGestureRecognizerStateEnded) {
        return;
    }else if(press.state==UIGestureRecognizerStateBegan)
    {
        UIActionSheet *actinSheet=[[UIActionSheet alloc] initWithTitle:@"是否保存图片" delegate:self cancelButtonTitle:@"不保存" destructiveButtonTitle:@"保存" otherButtonTitles:nil, nil];
        actinSheet.cancelButtonIndex = actinSheet.numberOfButtons - 1;
       [actinSheet showInView:[UIApplication sharedApplication].keyWindow];
       
        
    }

}

#pragma mark -UIActionSheetDelegate保存图片
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (actionSheet.numberOfButtons - 1 == buttonIndex) {
        return;
    }
    NSString *title=[actionSheet buttonTitleAtIndex:buttonIndex];
    if ([title isEqualToString:@"保存"])
    {
        UIImageWriteToSavedPhotosAlbum([_fullImageView image], nil, nil,nil);
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"存储照片成功"
                                                        message:@"已存储在Photos中打开即可查看"
                                                       delegate:self
                                              cancelButtonTitle:@"OK"
                                              otherButtonTitles:nil];
        [alert show];
    }
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值