iOS混合视图和图片拉伸引起的性能问题

模拟器debug模式下: Color Blended Layers (混合层)

UILabel、UIImageV等控件避免混合层需要满足下面三个条件:
1、必须设置背景色完全不透明,不能设置clearColor
2、layer.masksToBounds = true 
3、layer.shouldRasterize = true // 设置栅格化
4、如果UI设计师切图四周是透明的,就没办法了。(其实大部分icon都不是四方形的所以都有透明的部分)-- icon还好,对性能影响很小。

模拟器debug模式下:Color Misaligned Images(图片拉伸)

Image设置大小一定要和图片本身的大小一样,
否则会出现拉伸导致的性能下降

高效调整图片大小的方法(难免会出现图片和实际展示大小不同的情况)

/// 调整图片大小
    func resize(size: CGSize) -> UIImage {
        UIGraphicsBeginImageContext(size);
//        UIGraphicsBeginImageContextWithOptions(size, false, 0) // 设置为不透明的,防止图片混合视图导致性能低。
        self.draw(in: CGRect.init(x: 0.0, y: 0.0, width: size.width, height: size.height));
        let resizeImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        return resizeImage!;
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容