gpt4 book ai didi

ios - UIScrollView可见区域如何截屏?

转载 作者:技术小花猫 更新时间:2023-10-29 10:29:39 27 4
gpt4 key购买 nike

如何对UIScrollView可见区域进行1:1截图?内容可能大于或小于 UIScrollView 边界以及半隐藏(我已经为较小的内容实现了自定义滚动,所以它不在左上角)。我在模拟器上取得了预期的结果,但在设备本身上却没有:

-(UIImage *)imageFromCombinedContext:(UIView *)background {
UIImage *image;
CGRect vis = background.bounds;
CGSize size = vis.size;
UIGraphicsBeginImageContext(size);
[background.layer affineTransform];
[background.layer renderInontext:UIGraphicsGetCurrentContext()];
image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
CGImageRef imref = CGImageCreateWithImageInRect([image CGImage], vis);
image = [UIImage imageWithCGImage:imref];
CGImageRelease(imref);
return image;
}

最佳答案

另一种方法是使用contentOffset 来调整图层的可见区域并捕获 UIScrollView 当前可见区域。

UIScrollView *contentScrollView;....//scrollview instance

UIGraphicsBeginImageContextWithOptions(contentScrollView.bounds.size,
YES,
[UIScreen mainScreen].scale);

//this is the key
CGPoint offset=contentScrollView.contentOffset;
CGContextTranslateCTM(UIGraphicsGetCurrentContext(), -offset.x, -offset.y);

[contentScrollView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *visibleScrollViewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

干杯:)

关于ios - UIScrollView可见区域如何截屏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10976816/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com