模拟器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!;
}
网友评论