objective-c - 将 UIView 捕获为 UIImage

标签 objective-c ios uiview uiimageview uiimage

我一直在使用这种方法将 UIView 转换为 UIImage。即 View 的屏幕快照 -

@interface UIView(Extended) 

- (UIImage *) imageByRenderingView;

@end


@implementation UIView(Extended)


- (UIImage *)imageByRenderingView
{   
    UIGraphicsBeginImageContext(self.bounds.size);
    [self.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return resultingImage;
}

@end

为了使用它,我这样做 -

UIImage *currImage = [self.view imageByRenderingView];

这给出了整个 UIView 的图像表示。现在我想要 2 张图片,一张是 UIView 的上半部分,另一张是下半部分。我该怎么做?

最佳答案

您可以使用以下代码将 UIImage 分成两部分:

CGImageRef topOfImageCG =
         CGImageCreateWithImageInRect(currImage.CGImage,
                                      CGRectMake(0,
                                                 0,
                                                 currImage.size.width,
                                                 currImage.size.height / 2.0));

UIImage *topOfImage = [UIImage imageWithCGImage:topOfImageCG];

CGImageRelease(topOfImageCG);

关于objective-c - 将 UIView 捕获为 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7177637/

相关文章:

ios - 因内存压力而终止,原因已知,解决方案未知

ios - 使用 UIDynamicAnimator 水平动画 UIView

ios - 与 View 高度成比例的底部空间限制

Swift View 和 Controller 共享变量初始化麻烦

ios - 延迟 IBAction 按钮

iphone - NSURLConnection发送异步请求: Blocking Main Thread

objective-c - Corona应用程序如何支持不同的设备目标?

ios - 如何在ios 7/8中设置导航栏渐变颜色

java - 使用 selenium/Appium 在 iOS 模拟器上启用/禁用 Wifi

iphone - 如何在nsdictionary中的键上添加数组