IOS截屏功能的实现
来源:互联网 发布:笛子模拟软件免费版 编辑:程序博客网 时间:2024/06/10 21:31
IOS截屏功能的实现
实现方法一、
#pragma mark - 截屏按钮事件
- (IBAction)screenShotAction:(UIButton *)sender {
//_screenImg为一个UIImageView控件
_screenImg.image =[self screenView:self.view.window];//传值self.view.window就是截整个眼睛可以看到的界面
// _screenImg.image =[self screenView:self.view];//传值self.view 不包含导航栏和TabBar
}
#pragma mark - 截屏功能的实现
- (UIImage*)screenView:(UIView *)view{
CGRect rect = view.frame;
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
[view.layer renderInContext:context];//如果传值self.view.window,整个界面都在截图中;如果传值self.view,截图无导航栏,无TabBar
//[self.navigationController.view.layer renderInContext:context];//如果传值self.view,注释上句,开启此句截图有导航栏,无TabBar
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}
实现方法二、
#pragma mark - 全屏截屏功能的实现
- (UIImage *)getScreenshot {
CGSize imageSize = [[UIScreen mainScreen] bounds].size;
UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0);
CGContextRef context = UIGraphicsGetCurrentContext();
for (UIWindow *window in [[UIApplication sharedApplication] windows]) {
if (![window respondsToSelector:@selector(screen)] || [window screen] == [UIScreen mainScreen]) {
CGContextSaveGState(context);
CGContextTranslateCTM(context, [window center].x, [window center].y);
CGContextConcatCTM(context, [window transform]);
CGContextTranslateCTM(context,
-[window bounds].size.width * [[window layer] anchorPoint].x,
-[window bounds].size.height * [[window layer] anchorPoint].y);
[[window layer] renderInContext:context];
CGContextRestoreGState(context);
}
}
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//保存图片到相册里面
// UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
return image;
}
- iOS截屏功能的实现
- 【读书笔记】iOS-截屏功能的实现。
- IOS截屏功能的实现
- iOS 截屏功能的实现
- iOS截屏功能的实现
- iOS的截屏功能实现
- <iOS>iPhone 应用里实现截屏功能的代码
- iOS截屏分享功能实现
- ios录音功能的实现
- iOS 录音功能的实现
- IOS推送功能的实现
- ios录音功能的实现
- iOS 录音功能的实现
- IOS推送功能的实现
- iOS 预览功能的实现
- IOS推送功能的实现
- iOS录音功能的实现
- iOS录音功能的实现
- 动手写 framebuffer 画点、划线程序 (七)
- 大鱼吃小鱼游戏-ane.js
- Codeforces 597A Divisibility 【数学计数】
- weblogic的console控制台修改操作内部流程
- Windows无法启动Sybase服务,错误1067
- IOS截屏功能的实现
- javascript 判断18位身份证的正确与错误
- jquery滑入滑出
- window.location.hash属性介绍
- .Net Web项目安装包制作 (一)
- 质数因子
- html常用标签
- Java框架组件-XML、JSON解析,日志,测试,文档,注释
- Wireshark过滤规则之:http数据包