【day07-1-getSystemImage】:获取系统相册

UIImagePickerController图片采集控制器

picker采集者,采摘者

该方法继承自:UINavigationController

该方法的简单使用:

1.创建该控制器,alloc init

2.present到这个控制器,会提示加载系统图片,加载完后默认按:

UIImagePickerControllerSourceTypePhotoLibrary样式显示。

有一个属性可以改变样式:sourceType

进入编辑模式:

首先打开编辑模式:allowsEditing设置为YES。

打开编辑模式时为了可以保存编辑,需要实现UIImagePickerControllerDelegate代理的一个方法

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info;

这个方法可以通过info字典可以获取到图片的详细信息进行图片的操作。

在编辑模式下取消返回的话需要实现代理中的另一个方法:

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker;

在该方法里dismiss回去。

注意一定要设置图片采集控制器的delegate。

如果在打开编辑模式下,点击图片会跳转到编辑图片界面,点击保存时调用imagePickerController方法,在关闭编辑模式下,点击图片就会调用imagePickerController方法。

在进入图片采集控制器时还会调用UINavigationControllerDelegate的两个方法,

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated;

该方法是在即将显示图片采集控制器的界面时调用。

- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated;

该方法是在图片采集控制器的界面显示后调用。

可以在这两个方法中通过viewController对当前界面进行操作。

总结:

删除图片达到后边图片往前挪的实现:

1.先把图片从数组中删掉

2.然后清空scrollview

3.最后重新从新的数组中加载图片到scrollView中

一个view只要从一个坐标系到另一个坐标系就需要进行转换。

CGRect newRect = [self.imagesScrollViewconvertRect:imageView.frametoView:self.view];

imageview上添加按钮,只有用户交互打开了这个按钮才可以点。

让view放在最底下的方法是insertSubview:atIndex:0

[self.editImageViewinsertSubview:self.editViewBackGroundIVatIndex:0]; // 把背景图片放在shuViews数组中的第0个位置,其效果也就是在最底下

使subview处于最前面

// 把点击的图片放在最前面

-(void)tapAction:(UITapGestureRecognizer *)tap{

[self.editImageView bringSubviewToFront:tap.view]; // 使subview处于最前面

}

在放大缩小时,注意将scale属性设为1

在旋转图片时,注意将rotation属性设为0

保存view中的图片到系统相册中

// 从view中取出UIImage保存到相册中

- (IBAction)saveImageButton:(id)sender {

// 创建画布

UIGraphicsBeginImageContext(self.editImageView.bounds.size);

// 把内容渲染到画布

[self.editImageView.layer renderInContext:UIGraphicsGetCurrentContext()];

// 取出画布中的图片

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

// 结束

UIGraphicsEndImageContext();

// 保存到系统相册中

UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), Nil);

}

- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo{

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"保存成功" delegate:Nil cancelButtonTitle:@"确定" otherButtonTitles:Nil, nil];

[alert show];

}

【day07-2-dragImage】:拖动图片到新的位置

常犯错误:忘记初始化数组

ios中remove references和move to trash的区别?remove references 只是删除引用 工程文件夹里面还是有这个文件的 move to trash 把文件从工程文件夹里扔进垃圾箱里了 .

高级UIKit-06(UIImagePickerController)的更多相关文章

  1. Linux高级编程--06.进程概述

    进程控制块 在Linux中,每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息,它通常包含如下信息: 进程id.系统中每个进程有唯一的id,在C语言中用pid_t类型表示,其实就是一个非 ...

  2. Java入门 - 高级教程 - 06.邮件收发

    原文地址:http://www.work100.net/training/java-email.html 更多教程:光束云 - 免费课程 邮件收发 序号 文内章节 视频 1 概述 2 发送一封简单的邮 ...

  3. JAVA EE企业级开发四步走完全攻略 [转]

    http://bbs.51cto.com/thread-550558-1.html 本文是J2EE企业级开发四步走完全攻略索引,因内容比较广泛,涉及整个JAVA EE开发相关知识,这是一个长期的计划, ...

  4. Swift - 给表格添加编辑功能(删除,插入)

    1,下面的样例是给表格UITableView添加编辑功能: (1)给表格添加长按功能,长按后表格进入编辑状态 (2)在编辑状态下,第一个分组处于删除状态,第二个分组处于插入状态 (3)点击删除图标,删 ...

  5. Swift - 给表格的单元格UITableViewCell添加图片,详细文本标签

    表格UITableView中,每一单元格都是一个UITableViewCell.其支持简单的自定义,比如在单元格的内部,添加图片和详细文本标签. 注意UITableViewCell的style: (1 ...

  6. Swift - 使用表格组件(UITableView)实现分组列表

    1,样例说明: (1)列表以分组的形式展示 (2)同时还自定义分区的头部和尾部 (3)点击列表项会弹出消息框显示该项信息. 2,效果图:       3,代码如下: 1 2 3 4 5 6 7 8 9 ...

  7. 利用UIImagePickerController或者利用UIKit的 UIGraphicsBeginImageContext保存图片

    转载自:http://my.oschina.net/hmj/blog/99970    应用中有时我们会有保存图片的需求,如利用UIImagePickerController用IOS设备内置的相机拍照 ...

  8. 数据分析06 /pandas高级操作相关案例:人口案例分析、2012美国大选献金项目数据分析

    数据分析06 /pandas高级操作相关案例:人口案例分析.2012美国大选献金项目数据分析 目录 数据分析06 /pandas高级操作相关案例:人口案例分析.2012美国大选献金项目数据分析 1. ...

  9. 读书笔记(06) - 语法基础 - JavaScript高级程序设计

    写在开头 本篇是小红书笔记的第六篇,也许你会奇怪第六篇笔记才写语法基础,笔者是不是穿越了. 答案当然是没有,笔者在此分享自己的阅读心得,不少人翻书都是从头开始,结果永远就只在前几章. 对此,笔者换了随 ...

随机推荐

  1. vs调试MEX文件

    http://www.cnblogs.com/lukylu/p/4042306.html matlab里面无法单步调试mex函数,故需转到VS上面调试,这里采用VS2010. 参考网上很多人写的方法但 ...

  2. ASP.NET 定时通知

    ASP.NET 定时通知 using System; using System.Collections.Generic; using System.Linq; using System.Web; us ...

  3. jQuery 子元素选择

    对于如下代码片段  如何对河meishi这个div的子DIV呢? <div id="vertical-Menu-meishi" class="J-nav-item& ...

  4. C# Base64解码 二进制输出

    具体的:Base64编码解码还需要学习 /// <summary> /// base64 解码Excel下载 /// </summary> /// <param name ...

  5. UNIX 缩写风格

    构建于图形界面之上的操作系统,使用鼠标作为主输入设备, 是否使用缩写并不重要.比如 Windows 系统中的目录,几乎都是全称…… 点击两次鼠标进入文件夹 pf, 并不意味着点击13次才能进入文件夹  ...

  6. cocos2d-x游戏开发系列教程-超级玛丽03-main函数

    代码下载链接 http://download.csdn.net/detail/yincheng01/6864893 解压密码:c.itcast.cn main函数内容 #include "m ...

  7. Hdu 3371 Connect the Cities(最小生成树)

    地址:http://acm.hdu.edu.cn/showproblem.php?pid=3371 其实就是最小生成树,但是这其中有值得注意的地方:就是重边.题目没有告诉你两个城市之间只有一条路可走, ...

  8. Hdu 1301 Jungle Roads (最小生成树)

    地址:http://acm.hdu.edu.cn/showproblem.php?pid=1301 很明显,这是一道“赤裸裸”的最小生成树的问题: 我这里采用了Kruskal算法,当然用Prim算法也 ...

  9. java学习之二叉树的实现

    二叉树是一种数据结构,每个节点都有两个子节点. 二叉树的遍历有三种方式, 先序遍历是 根节点,左子树,右子树: 中序遍历是 左子树,根节点,右子树: 后序遍历是 左子树,右子树,根节点: java实现 ...

  10. codeblocks快捷键及设置

    ==日常编辑== • 按住Ctrl滚滚轮,代码的字体会随你心意变大变小.• 在编辑区按住右键可拖动代码,省去拉(尤其是横向)滚动条之麻烦:相关设置:Mouse Drag Scrolling.• Ctr ...