美文网首页
iOS OC view截取生成image

iOS OC view截取生成image

作者: ZfRee | 来源:发表于2024-06-26 15:25 被阅读0次

UIImage context 实现了。网上绝大部分也都是这个代码。 但是点进去api看了一下显示API_DEPRECATED

Before:

- (UIImage *)captureScreenForView:(UIView *)currentView {

    // 开启一个绘图的上下文
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(currentView.size.width, currentView.size.height), NO, 0.0);
    // 作用于CALayer层的方法。将view的layer渲染到当前的绘制的上下文中。
    [currentView drawViewHierarchyInRect:CGRectMake(0, 0, currentView.frame.size.width, currentView.frame.size.height) afterScreenUpdates:YES];
    // 获取图片
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    // 结束绘图上下文
    UIGraphicsEndImageContext();
    
    return viewImage;
}

After:

⚠️注意:API_AVAILABLE(ios(10.0)) ⚠️


- (UIImage *)captureScreenForView:(UIView *)currentView {
    
    UIGraphicsImageRenderer *renderer = [[UIGraphicsImageRenderer alloc] initWithBounds:currentView.bounds];
    UIImage *image = [renderer imageWithActions:^(UIGraphicsImageRendererContext * _Nonnull rendererContext) {
        // 在这里绘制当前视图
        [currentView.layer renderInContext:rendererContext.CGContext];
    }];
    
    return image;
}

Api用新不用旧。语言也一样 ,无奈工作中的项目都是OC,没有写Swift商业项目的机会,给OC项目混上Swift也行,但是包体积跟我说:这好吗?。
也还好上了Flutter的车,一晃写了3年Flutter。这又接手OC老项目了。
我想说:Flutter开发起来真的比原生语言爽多了!

相关文章

网友评论

      本文标题:iOS OC view截取生成image

      本文链接:https://www.haomeiwen.com/subject/vgrscjtx.html