iOS 学习笔记一【屏幕截图,并显示当前View】
// 直接上代码:
// // ViewController.h // 屏幕截图测试 // // Created by 博爱之家 on 15/11/11. // Copyright © 2015年 博爱之家. All rights reserved. // #import <UIKit/UIKit.h> @interface ViewController : UIViewController { NSData *imageData; } @end
*************************************
// // ViewController.m // 屏幕截图测试 // // Created by 博爱之家 on 15/11/11. // Copyright © 2015年 博爱之家. All rights reserved. // #import "ViewController.h" //宏定义 //当前设备的屏幕宽度 #define KSCREEN_WIDTH [[UIScreen mainScreen] bounds].size.width //当前设备的屏幕高度 #define KSCREEN_HEIGHT [[UIScreen mainScreen] bounds].size.height @interface ViewController () @property (nonatomic, strong) UILabel *testlabel; @property (nonatomic, strong) UIButton *testButton; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. self.title = @"截屏测试"; self.view.backgroundColor = [UIColor whiteColor]; self.testlabel = [UILabel new]; self.testlabel.frame = CGRectMake((KSCREEN_WIDTH-)/ , , , ); self.testlabel.text = @"截屏测试"; self.testButton = [UIButton buttonWithType:UIButtonTypeCustom]; self.testButton.frame = CGRectMake((KSCREEN_WIDTH-)/ , , , ); [self.testButton setTitle:@"点击截屏" forState:UIControlStateNormal]; self.testButton.backgroundColor = [UIColor purpleColor]; [self.testButton addTarget:self action:@selector(clickBUutton:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:self.testlabel]; [self.view addSubview:self.testButton]; } - (IBAction)clickBUutton:(id)sender { NSLog(@"开始"); [self saveScreenShotsView]; UIImageView *imageView = [[UIImageView alloc] init]; imageView.frame = CGRectMake(, , , ); imageView.backgroundColor = [UIColor greenColor]; imageView.image = [UIImage imageWithData:imageData]; [self.view addSubview:imageView]; } // 保存图片 - (void)saveScreenShotsView { UIImage *image = [self getNormalImage:self.view]; UIImageWriteToSavedPhotosAlbum(image, self, nil, nil); [self saveToDisk:image]; NSLog(@"结束"); } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); } #pragma mark - 获取屏幕截图 - (UIImage *)getNormalImage:(UIView *)view { UIGraphicsBeginImageContext(CGSizeMake(KSCREEN_WIDTH, KSCREEN_HEIGHT)); CGContextRef context = UIGraphicsGetCurrentContext(); [view.layer renderInContext:context]; UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return image; } #pragma mark - 保存到硬盘中 - (void)saveToDisk:(UIImage *)image { NSString *dirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES) objectAtIndex:]; NSLog(@"保存路径: %@", dirPath); NSString *path = [NSString stringWithFormat:@"%@/pic_%f.png",dirPath,[NSDate timeIntervalSinceReferenceDate]]; imageData = [NSData dataWithData:UIImagePNGRepresentation(image)]; [imageData writeToFile:path atomically:YES]; NSLog(@"保存路径: %@", path); NSString *imagePath = [[path componentsSeparatedByString:@"/"] lastObject]; NSLog(@"保存路径2imagePath: %@", imagePath); NSLog(@"保存完毕"); } @end
iOS 学习笔记一【屏幕截图,并显示当前View】的更多相关文章
- iOS学习笔记(5)——显示简单的TableView
1. 创建工程 创建一个新的Xcode工程命名为SimpleTableTest. 删除main.storyboard文件和info.plist中有关storyboard的相关属性. 按command+ ...
- iOS学习笔记(4)——显示单组件选取器
1. 创建工程 创建新工程,create a new Xcode project 创建single view application 创建名为PickerViewTest的工程 2. 创建xib文件 ...
- iOS学习笔记-精华整理
iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始 ...
- iOS学习笔记10-UIView动画
上次学习了iOS学习笔记09-核心动画CoreAnimation,这次继续学习动画,上次使用的CoreAnimation很多人感觉使用起来很繁琐,有没有更加方便的动画效果实现呢?答案是有的,那就是UI ...
- iOS学习笔记总结整理
来源:http://mobile.51cto.com/iphone-386851_all.htm 学习IOS开发这对于一个初学者来说,是一件非常挠头的事情.其实学习IOS开发无外乎平时的积累与总结.下 ...
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
- [置顶] iOS学习笔记47——图片异步加载之EGOImageLoading
上次在<iOS学习笔记46——图片异步加载之SDWebImage>中介绍过一个开源的图片异步加载库,今天来介绍另外一个功能类似的EGOImageLoading,看名字知道,之前的一篇学习笔 ...
- iOS学习笔记之UITableViewController&UITableView
iOS学习笔记之UITableViewController&UITableView 写在前面 上个月末到现在一直都在忙实验室的事情,与导师讨论之后,发现目前在实验室完成的工作还不足以写成毕业论 ...
- IOS学习笔记48--一些常见的IOS知识点+面试题
IOS学习笔记48--一些常见的IOS知识点+面试题 1.堆和栈什么区别? 答:管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制:对于堆来说,释放工作由程序员控制,容易产生memor ...
- iOS学习笔记-自己动手写RESideMenu
代码地址如下:http://www.demodashi.com/demo/11683.html 很多app都实现了类似RESideMenu的效果,RESideMenu是Github上面一个stars数 ...
随机推荐
- Java多线程——AQS框架源码阅读
AQS,全称AbstractQueuedSynchronizer,是Concurrent包锁的核心,没有AQS就没有Java的Concurrent包.它到底是个什么,我们来看看源码的第一段注解是怎么说 ...
- FCL研究-目录
准备深入的学习下 FCL,太过于庞大,有些无从下口.用最笨的方法,先从常用的几个命名空间入手. 微软发布了.NET 的源码,学习起来更加方便了. 集合 导航: FCL研究-集合- System.Col ...
- Java高级架构师(一)第26节:测试并调整登录的业务功能
主Index的处理Java: package com.sishuok.architecture1; import org.springframework.beans.factory.annotatio ...
- Java高级架构师(一)第13节:Spring MVC实现Web层开发
package com.sishuok.architecture1.customermgr.web; import org.springframework.beans.factory.annotati ...
- JS面向对象之原型
面向对象之原型 为什么要使用原型 由于 js 是解释执行的语言, 那么在代码中出现的函数与对象, 如果重复执行, 那么会创建多个副本, 消耗更多的内存, 从而降低性能 传统构造函数的问题 functi ...
- 2015年Ubuntu最新Redmine的安装和配置
近期须要在公司内部搭建一个项目管理平台Redmine,在摸索了一天之后.最终配置成功,在这里分享给大家. 公司server的系统是Ubuntu14.04,要安装的是最新的Redmine3.0. 因为R ...
- web UIproject师必读的一篇文档,写的很好
今天在花瓣网上看到的一片文章.写的是web UIproject师的工作应该是如何的,内容非常精彩,分享给小伙伴.希望web UIproject师看了之后有所启示. 我不是一个简单的web UI htt ...
- iOS:Objective-c的MD5/SHA1加密算法的实现
介绍: Objective-c实现MD5和SHA1算法相对还是比较简单的,可以直接调用系统的C/C++共享库来实现调用MD5即Message Digest Algorithm 5(信息-摘要算法 5) ...
- Spring的学习(IoC,AOP)等
下面这个系列是非常好的例子: http://www.yiibai.com/spring/spring-3-hello-world-example.html 正在看,把一些基础夯实. IoC可以从下面一 ...
- ubuntu查看系统版本
1.查看文件信息,包含32-bit就是32位,包含64-bit就是64位 root@HDController:/home/nulige/tools# uname -a Linux HDControll ...