摇一摇截屏
来源:互联网 发布:脂肪坏处 知乎 编辑:程序博客网 时间:2024/06/13 12:56
/* 点击模拟器 在左上边的一栏里 Hardware中Shake Gesture为摇一摇command+shift+z 不一定好使 */
- (void)viewDidLoad {
[superviewDidLoad];
// Do any additional setup after loading the view.
UIImageView *image = [[UIImageViewalloc] initWithFrame:CGRectMake(0,64, self.view.frame.size.width,self.view.frame.size.height)];
// image.image = [UIImage imageNamed:@"NQN$BKVL()WW~B(2`O$2PAP.jpg"];
// image.image = [UIImage imageNamed:@"28JE6Y@S8GXXRL~MKNUYX9T.jpg"];
image.image = [UIImageimageNamed:@"专属姣儿.jpg"];
[self.viewaddSubview:image];
[imagerelease];
/*
** 1、监控摇一摇动作
*/
#pragma mark 1, 让当前视图控制器成为第一响应者
//必须先让当前视图控制器成为第一响应者才能响应动作时间
[selfbecomeFirstResponder];
}
#pragma mark 2, 实现响应方法-继承自UIResponder的方法
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
//如果动作类型是摇一摇[震动]
if (motion ==UIEventSubtypeMotionShake) {
// 调用截屏方法
[selfsnapshot];
}
}
/*
** 2、截屏
注意: 1, 在获取图像时,必须先开启图像上下文,再获取上下文
2, 保存成功后执行的方法必须是固定格式的,也就是下面代码所展示的格式
*/
#pragma mark - 点击截屏按钮
- (IBAction)snapshot
{
NSLog(@"摇了");
// 1.开启图像上下文[必须先开开启上下文再执行第二步,顺序不可改变]
UIGraphicsBeginImageContext(self.view.bounds.size);
// 2. 获取上下文
CGContextRef context =UIGraphicsGetCurrentContext();
// 3.将当前视图图层渲染到当前上下文
[self.view.layerrenderInContext:context];
// 4. 从当前上下文获取图像
UIImage *image =UIGraphicsGetImageFromCurrentImageContext();
// 5. 关闭图像上下文
UIGraphicsEndImageContext();
// 6. 保存图像至相册
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:),nil);
}
#pragma mark 保存完成后调用的方法[格式固定]
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
{
if (error) {
NSLog(@"error-%@", error.localizedDescription);
}else{
NSLog(@"保存成功");
}
}
/* 可能会有点慢 但却实现了简单地截屏 */
- 摇一摇截屏
- 摇一摇截屏相关功能 -- 集成文档
- 为什么使用用友盟的摇一摇截屏功能,截出来的地图图片是黑屏的,渴求大师解答,感激不尽
- 2015-3-21 学习豆瓣应用的奥妙
- OC-手动内存管理
- UITableView的封装和类的交互1
- 图的理论基础
- 【实例】html5-canvas绘制线段、矩形和圆
- 摇一摇截屏
- .Net 改变WebBrowser 内核版本
- 淘宝技术交流讲座笔记及其它
- 互联网+靠的还是实业
- 黑马程序员——Java基础02
- 安卓开发设置完全退出按钮
- Two classes have the same XML type name 排错
- 用代码简单介绍java中的异常的捕获及处理
- Java日志框架——JCL(Log4J,Java Logging API)转SLF4J过程中重复依赖冲突问题