UILabel的屏幕快照和UIImageView中的内容
我正在尝试截取我的UIImageView和UILabel。
到目前为止,我在ImageView中抓取了UIImage,然后渲染了叠加层,但UILabel的位置都是错误的。 我将捕捉的大小设置为实际图像大小(这不是我想要的)。
我只是想能够在屏幕上显示它的截图。
CGSize imageSize = self.imageFromOtherView.size;
// define the size and grab a UIImage from it
UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0);
[self.imageFromOtherView drawInRect:CGRectMake(0, 0, imageSize.width, imageSize.height)];
[self.socialLabel.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *capturedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
创建一个UIView来保存UIImageView和UILabel。 然后通过这个代码传递这个容器视图。 我把我的视图看作一个名为viewForPhoto的属性,所以当代码被调用时它只捕获该视图。 你可以调整它,以便它接收到一个视图。 这将返回你想要的UIImage。
- (UIImage *)imageByRenderingView
{
UIGraphicsBeginImageContextWithOptions(self.viewForPhotoView.bounds.size, NO, 0.0);
[self.viewForPhotoView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return resultingImage;
}
将这些视图添加到公共容器视图中,然后调用- (BOOL)drawViewHierarchyInRect:(CGRect)rect afterScreenUpdates:(BOOL)afterUpdates
视图在上下文中呈现它。
上一篇: ScreenShot of an UILabel and what is in a UIImageView
下一篇: UIScrollView Zoom: Limit panning to imageView.image bounds