嗨,我想将我的 UIView
转换为 UIImage
特别是帧大小,请帮助我。
我有“UITableView”,它被添加为“UIScrollView”的 subview 以进行水平滚动,我的表格 View 框架大小是(0, 0, 12000, 768)。
我想在滚动后将
UITableView
的当前可见区域转换为UIImage
。
示例:
如果我水平滚动表格 View 一段距离,则意味着当前可见区域为 (150,0,1200,768),这意味着整个设备屏幕。
如果我使用以下代码:
UIGraphicsBeginImageContext(self.frame.size); [self.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *backgroundImage = UIGraphicsGetImageFromCurrentImageContext();
其捕获的帧大小始终为 (0, 0, 1200, 768)。
那么,如何设置图像捕获的原点。
请帮助我......提前致谢......
最佳答案
- (UIImage *)rasterizedImageInView:(UIView *)view atRect:(CGRect)rect {
UIGraphicsBeginImageContextWithOptions(rect.size, view.opaque, 0.0);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(context, -rect.origin.x, -rect.origin.y);
[view.layer renderInContext:context];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
这将允许您从 UIView
内的特定区域捕获 UIImage
(由 CGRect
定义)。
关于objective-c - 如何在特定帧中将 UIView 捕获为 UIImage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22625970/