objective-c - 如何在特定帧中将 UIView 捕获为 UIImage?

标签 objective-c uitableview uiimage quartz-2d

嗨,我想将我的 UIView 转换为 UIImage 特别是帧大小,请帮助我。

  1. 我有“UITableView”,它被添加为“UIScrollView”的 subview 以进行水平滚动,我的表格 View 框架大小是(0, 0, 12000, 768)。

  2. 我想在滚动后将 UITableView 的当前可见区域转换为 UIImage

示例:

如果我水平滚动表格 View 一段距离,则意味着当前可见区域为 (150,0,1200,768),这意味着整个设备屏幕。

  1. 如果我使用以下代码:

    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/

相关文章:

objective-c - 如何使用 KVO 更新属性

ios - 如何获取UIScrollView中显示区域的中心?

ios - 将两个 UIImageView 组合成一个图像拉伸(stretch)

iphone - 如何减少/删除分组的 UITableView 中的左/右边距?

ios - 拖放的自定义 View

iphone - UIImage 操作需要帮助

ios - UIImageView 没有正确释放图像数据?

objective-c - 简单的多边形纹理贴图/iOS/cocos2d

ios - swift - 应用程序在多行选择中的一行上崩溃

iphone - 将 UIImage 压缩到特定大小(以兆字节为单位)