UIScrollView,UIView转换UIImage代码(整个view截图, 不只是可视区域)
2014-05-22 10:10
393 查看
-(UIImage*)captureView:(UIView *)theView{ CGRect rect = theView.frame; if ([theView isKindOfClass:[UIScrollView class]]) { rect.size = ((UIScrollView *)theView).contentSize; } UIGraphicsBeginImageContext(rect.size); CGContextRef context = UIGraphicsGetCurrentContext(); [theView.layer renderInContext:context]; UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return img; }
- (UIImage *)captureScrollView:(UIScrollView *)scrollView{ 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; }
60down voteaccepted | Here is code that works ...- (IBAction) renderScrollViewToImage { 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) { [UIImagePNGRepresentation(image) writeToFile: @"/tmp/test.png" atomically: YES]; system("open /tmp/test.png"); } } The last few lines simply write the image to /tmp/test.png and then opens it in Preview.app. This obviously only works on in the Simulator :-) Complete project in the ScrollViewScreenShot Github Repository |
相关文章推荐
- UIScrollView,UIView转换UIImage代码(整个view截图, 不只是可视区域)
- UIScrollView,UIView转换UIImage代码(整个view截图, 不只是可视区域)
- UIScrollView全部区域截图代码
- iOS纯代码制作欢迎界面——UIScrollView, UIPageControl, UIImageView,UIButton, NSTimer
- [iOS代码] 视图view如何截图 生成UIImage图片
- UIScrollView,UIView截屏代码
- 截屏实现,将UIView指定区域转换成图UIImage
- View坐标,MotionEvent坐标, 二者的转换,可视区域
- UIScrollView 滚动,中间显示整个图片 前后显示部分图片
- UIScrollView UITableView 上拉 上提 刷新 代码
- UIScrollView UITableView 上提刷新代码
- js获取浏览器的可视区域尺寸的实现代码
- div背景半透明,覆盖整个可视区域的遮罩层效果
- 两个常用的DIV弹出层效果代码(遮挡整个页面,遮挡可视部分)
- 设置UIImage或UIView圆角 、设置UIView边框的代码
- [转]iPhone开发应用中UIScrollView代码实现循环滚动
- UIView在本区域内可视
- UIScrollView UITableView 上拉 上提 刷新 代码
- iPhone开发应用中UIScrollView代码实现循环滚动
- 设置UIImage或UIView圆角 、设置UIView边框的代码