图片变暗在很多界面元素中可以用到,比如 UIButton 将背景图变暗表示用户点中。UIButton 如果没有设置 highlighted image,它会自动变正常态的图变暗。那么我们自定义的控制如果实现这一效果呢?
方法1、当然,最简单的,叫美工同学做两张图。这种方法的缺点是,会增大软件包的体积。
方法2、代码生成变暗的图。
UIImage *image = [UIImage imageNamed:@"normal.png"];
UIGraphicsBeginImageContextWithOptions(image.size, NO, [UIScreen mainScreen].scale);
[image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)
blendMode:kCGBlendModeDarken
alpha:0.6];
UIImage *highlighted = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
这时,highlighted 就是原图基础上变暗的版本了。