图片变暗在很多界面元素中可以用到,比如 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 就是原图基础上变暗的版本了。