zoukankan      html  css  js  c++  java
  • ios学习笔记——保存图片到相册

    最近项目要用到,这是自己练手的程序

     1 //
     2 //  ViewController.m
     3 //  SJZSaveImage
     4 //
     5 //  Created by mac on 16/6/3.
     6 //  Copyright © 2016年 mac. All rights reserved.
     7 //
     8 
     9 #import "ViewController.h"
    10 
    11 @interface ViewController () <UIActionSheetDelegate>
    12 
    13 @property (nonatomic, strong) UIImage * image;
    14 
    15 @end
    16 
    17 @implementation ViewController
    18 
    19 - (void)viewDidLoad {
    20     [super viewDidLoad];
    21     self.title = @"保存图片";
    22     
    23     UIImage * image = [UIImage imageNamed:@"saveImage.jpg"];
    24     self.image = image;
    25     
    26     UIImageView * imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height / 2)];
    27     imageView.center = self.view.center;
    28     imageView.image = image;
    29     
    30     [self.view addSubview:imageView];
    31     
    32     [self createButton];
    33 }
    34 
    35 - (void)createButton
    36 {
    37     UIButton * button = [[UIButton alloc] initWithFrame:CGRectMake(40, self.view.frame.size.height * 7 / 8, self.view.frame.size.width - 80, 40)];
    38     button.backgroundColor = [UIColor whiteColor];
    39     [button setTitle:@"保存图片" forState:UIControlStateNormal];
    40     [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    41     button.layer.cornerRadius = 4.0;
    42     [button addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];
    43     [self.view addSubview:button];
    44 }
    45 
    46 - (void)buttonClick
    47 {
    48     if([[UIDevice currentDevice].systemVersion doubleValue] > 8.0){
    49         //ios8之后用UIAlertController代替UIActionSheet
    50         UIAlertController * alert = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet];
    51         
    52         //增加保存图片action
    53         UIAlertAction *action = [UIAlertAction actionWithTitle:@"保存图片" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
    54             
    55             //将图片保存到相册,回调函数必须为这个形式
    56             UIImageWriteToSavedPhotosAlbum(self.image, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL);
    57             
    58         }];
    59         
    60         [action setValue:[UIColor blackColor] forKey:@"_titleTextColor"];
    61         [alert addAction:action];
    62         
    63         //增加取消action
    64         UIAlertAction * actionCancel = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
    65             
    66         }];
    67         [actionCancel setValue:[UIColor redColor] forKey:@"_titleTextColor"];
    68         [alert addAction:actionCancel];
    69         
    70         [self presentViewController:alert animated:YES completion:nil];
    71     }else{
    72         UIActionSheet * action = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"保存图片" otherButtonTitles:nil, nil];
    73         [action showInView:self.view];
    74     }
    75 }
    76 
    77 - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
    78 {
    79     if(buttonIndex == 0){
    80         //将图片保存到相册,该函数的回调必须为这种形式
    81         UIImageWriteToSavedPhotosAlbum(self.image, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL);
    82     }
    83 }
    84 
    85 //保存图片回调函数
    86 - (void)image: (UIImage *) image didFinishSavingWithError: (NSError *) error contextInfo: (void *) contextInfo
    87 {
    88     //我们可以在这里设置弹出框
    89     if(error){
    90         NSLog(@"保存失败");
    91     }else{
    92         NSLog(@"保存成功");
    93     }
    94 }
    95 
    96 @end
  • 相关阅读:
    ubuntu16.04下笔记本自带摄像头编译运行PTAM
    ar的主流算法
    ubuntu下安装meshlab
    打开.py文件的方法
    Python_ip代理
    对书名的抓取
    JS动态增加删除UL节点LI及相关内容示例
    js遍历json
    js移除某一类的div
    工厂模式
  • 原文地址:https://www.cnblogs.com/sjzlovecj/p/5557742.html
Copyright © 2011-2022 走看看