imageWithContentsOfFile则仅只加载图片,不缓存.大量使用imageNamed方式会在不需要缓存的地方额外增加开销CPU的时间来做这件事.当应用程序需要加载一张比较大的图片并且使用一次性,那么其实是没有必要去缓存这个图片的,用imageWithContentsOfFile是最为经济的方式,这样不会因为UIImage元素较多情况下,CPU会被逐个分散在不必要缓存上浪费过多时间.。
// 方法一、添加UIImage分类
- (UIImage*)imageByApplyingAlpha:(CGFloat) alpha {
UIGraphicsBeginImageContextWithOptions(self.size,NO,0.0f)
CGContextRef ctx = UIGraphicsGetCurrentContext()
CGRectarea = CGRectMake(0,0,self.size.width,self.size.height)
CGContextScaleCTM(ctx, 1, -1)
CGContextTranslateCTM(ctx, 0, -area.size.height)
CGContextSetBlendMode(ctx, kCGBlendModeMultiply)
CGContextSetAlpha(ctx, alpha)
CGContextDrawImage(ctx, area,self.CGImage)
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
returnnewImage
}
// 方法二、如果没有奇葩需求,干脆用UIImageView设置透明度
UIImageView*imageView = [[UIImageViewalloc]initWithImage:[UIImageimageWithName:@"yourImage"]]
imageView.alpha =0.5
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)