美文网首页iOS Developer
iOS混合视图和图片拉伸引起的性能问题

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

作者: 小明2021 | 来源:发表于2017-09-22 13:40 被阅读108次

模拟器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!;
    }

相关文章

网友评论

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

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