iOS BUG UIView转UIImage模糊失真

iOS BUG UIView转UIImage模糊失真

##UIView转成Image

复制代码
- (UIImage *)capture {
    UIGraphicsBeginImageContextWithOptions(self.bounds.size, YES, 0.0);
    [self.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return img;
}

运行后发现,转换后的UIImage显示后会变模糊失真

##解决方案

复制代码
- (UIImage *)capture {
    CGSize s = self .bounds.size;
    // 下面方法,第一个参数表示区域大小。第二个参数表示是否是非透明的。如果需要显示半透明效果,需要传NO,否则传YES。第三个参数就是屏幕密度了
    UIGraphicsBeginImageContextWithOptions(s, NO, [UIScreen mainScreen].scale);
    [self.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage*image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}

##UIScrollView内容转成UIIMageView方法

复制代码
- (UIImage *)captureScrollView:(UIScrollView *)scrollView
{
    UIImage* image = nil;
    UIGraphicsBeginImageContextWithOptions(scrollView.contentSize, NO, 0.0);
    {
        CGPoint savedContentOffset = scrollView.contentOffset;
        CGRect savedFrame = scrollView.frame;
        scrollView.contentOffset = CGPointZero;
        scrollView.frame = CGRectMake(0, 0, scrollView.contentSize.width, scrollView.contentSize.height);
        
        [scrollView.layer renderInContext: UIGraphicsGetCurrentContext()];
        image = UIGraphicsGetImageFromCurrentImageContext();
        
        scrollView.contentOffset = savedContentOffset;
        scrollView.frame = savedFrame;
    }
    UIGraphicsEndImageContext();
    
    if (image != nil) {
        return image;
    }
    return nil;
}

学习记录,每天不停进步。

相关推荐
懋学的前端攻城狮1 小时前
第三方SDK集成沉思录:在便捷与可控间寻找平衡
ios·前端框架
冰凌时空4 小时前
Swift vs Objective-C:语言设计哲学的全面对比
ios·openai
花间相见5 小时前
【大模型微调与部署03】—— ms-swift-3.12 命令行参数(训练、推理、对齐、量化、部署全参数)
开发语言·ios·swift
SameX5 小时前
删掉ML推荐、砍掉五时段分析——做专注App时我三次推翻自己,换来了什么
ios
YJlio7 小时前
2026年4月19日60秒读懂世界:从学位扩容到人形机器人夺冠,今天最值得关注的6个信号
python·安全·ios·机器人·word·iphone·7-zip
阿部多瑞 ABU18 小时前
《智能学号抽取系统》V5.9.5 发布:精简代码,修复移动端文件读取核心 Bug
vue·html·bug
90后的晨仔19 小时前
《SwiftUI 高级特性第1章:自定义视图》
ios
空中海20 小时前
第二章:SwiftUI 视图基础
ios·swiftui·swift
空中海1 天前
第七章:iOS网络与数据持久化
网络·ios
空中海1 天前
第六章:iOS导航与路由系统
macos·ios·cocoa