截取整个ScrollerView视图
来源:互联网 发布:org.apache.cxf maven 编辑:程序博客网 时间:2024/06/04 18:17
因项目的需要,需要截取整个ScrollerView视图,开始搜索找到如下的相关解决方式:
转载自:http://www.cnblogs.com/willbin/p/3745067.html
- (UIImage *)captureScrollView{ UIImage* image = nil; UIGraphicsBeginImageContext(scrollView.contentSize); { CGPoint savedContentOffset = scrollView.contentOffset; CGRect savedFrame = scrollView.frame; scrollView.contentOffset = CGPointZero; scrollView.frame = CGRectMake(0, 0, scrollView.contentSize.width, scrollView.contentSize.height); [scrollView.layer renderInContext: UIGraphicsGetCurrentContext()]; image = UIGraphicsGetImageFromCurrentImageContext(); scrollView.contentOffset = savedContentOffset; scrollView.frame = savedFrame; } UIGraphicsEndImageContext(); if (image != nil) { return image; } return nil; }
经过测试使用,貌似解决了,但是,在iOS9之前的系统,直接崩溃了,。。。。。。。。伤,,,,
错误指向:
Assertion failed: (CGFloatIsValid(x) && CGFloatIsValid(y)),function void CGPathMoveToPoint(CGMutablePathRef, const CGAffineTransform *, CGFloat, CGFloat),file Paths/CGPath.cc, line 254.
错误示例代码:
UIImage* image = nil;CGSize imageSize = CGSizeMake(self.view.bounds.size.width, self.view.bounds.size.height);UIGraphicsBeginImageContextWithOptions(imageSize, NO , 0.0f);[self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; // <- ERROR image = UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();
解决代码:
#pragma mark - 截取屏幕的图片- (UIImage *)captureScrollView:(UIScrollView *)scrollView{ UIImage* image = nil; CGSize sizes=scrollView.contentSize; sizes.width=sizes.width; sizes.height=sizes.height-20; UIGraphicsBeginImageContextWithOptions(sizes, NO, 0); { CGPoint savedContentOffset = scrollView.contentOffset; CGRect savedFrame = scrollView.frame; scrollView.contentOffset = CGPointZero; scrollView.frame = CGRectMake(0, 0, scrollView.contentSize.width, scrollView.contentSize.height); [scrollView drawViewHierarchyInRect:scrollView.bounds afterScreenUpdates:YES]; image = UIGraphicsGetImageFromCurrentImageContext(); scrollView.contentOffset = savedContentOffset; scrollView.frame = savedFrame; } UIGraphicsEndImageContext(); if (image != nil) { return image; } return nil;}
0 0
- 截取整个ScrollerView视图
- ScrollerView
- scrollerview
- IOS UI初级-滑动视图ScrollerView
- 截取整个屏幕
- iOS开发-自定义重用机制给ScrollerView添加子视图
- iOS 截取整个uiscrolview内容
- 截取视图 保存
- 截取 视图 部分 图片
- 截取当前屏幕视图
- 截取当前视图
- iOS 截取当前视图
- IOS 截取整个scrollView区域图片
- 【框架-MFC】截取整个屏幕,伪造桌面
- ubuntu滚动屏幕长截屏,截取整个网页
- android截取view的视图 截取屏幕
- 理解ScrollerView
- scrollerView初探
- Convert.ToInt32(Object, IFormatProvider)的含义
- for循环创建UIButton,如何去修改边框颜色
- git and github 学习笔记
- Java编程练习目录
- 这应该是迄今为止最全的一份Java就业指导书
- 截取整个ScrollerView视图
- lua虚拟机初始化
- iOS RTMP 视频直播开发笔记(3) --- 与帧相关的概念
- linux挂载磁盘及磁盘格式化
- Python学习笔记 —— 数字类型【Numbers】及常用方法
- Android 手机抓包方法(一)
- Android DiaglogFragment 设置背景为透明
- 第十五周--阅读程序
- AJAX