您好我想将我的UIView
转换为UIImage
特定的帧尺寸,请帮助我。
我有' UITableView`,它被添加为' UIScrollView'的子视图。对于水平滚动,我的表格视图框架大小为(0,0,12000,768)。
我希望在滚动后将UITableView
的当前可见内容转换为UIImage
。
示例:
如果我水平滚动我的表视图一段距离意味着当前可见的是(150,0,1200,768),这意味着完整的设备屏幕。
如果我使用以下代码:
UIGraphicsBeginImageContext(self.frame.size);
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *backgroundImage = UIGraphicsGetImageFromCurrentImageContext();
它的捕获总是只有(0,0,1200,768)的帧大小。
那么,我该如何设置图像捕捉的来源。
请帮助我....提前致谢....
答案 0 :(得分:4)
- (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;
}
这样,您就可以按UIImage
定义的UIView
内的特定区域捕获CGRect
。
答案 1 :(得分:0)
CGRect rect = [self.view bounds];
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
[self.view.layer renderInContext:context];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
答案 2 :(得分:-1)
试试这个。
UIView *viewprint=[[UIView alloc] initWithFrame:CGRectMake(0, 0, width, height)];
viewprint.backgroundColor=[UIColor whiteColor];
tableView.frame = CGRectMake(0, 0, width, height);
[viewprint addSubview:tableView];
UIGraphicsBeginImageContext(viewprint.size);
CGContextRef context = UIGraphicsGetCurrentContext();
[view.layer renderInContext:context];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();