iOS 杂谈iOS开发iOS

iOS 中利用图形上下文给 UIImage 设置透明度

2017-02-09  本文已影响105人  深度码农患者

在自定义控件的时候,需要给控件的背景图片设置透明度,但是 UI 只提供了不带透明度的图片,而给控件整体设置透明度又会影响其子控件的正常显示,这时候可以利用图形上下文给 Image 设置透明度,代码如下:

+ (UIImage*)imageByApplyingAlpha:(CGFloat)alpha  image:(UIImage*)image {

 UIGraphicsBeginImageContextWithOptions(image.size,NO,0.0f);
 CGContextRefctx =UIGraphicsGetCurrentContext();
 CGRectarea =CGRectMake(0,0, image.size.width, image.size.height);
 CGContextScaleCTM(ctx,1, -1);
 CGContextTranslateCTM(ctx,0, -area.size.height);
 CGContextSetBlendMode(ctx,kCGBlendModeMultiply);
 CGContextSetAlpha(ctx, alpha);
 CGContextDrawImage(ctx, area, image.CGImage);
 UIImage*newImage =UIGraphicsGetImageFromCurrentImageContext();
 UIGraphicsEndImageContext();
 return newImage;
}

希望对大家有所帮助。

上一篇下一篇

猜你喜欢

热点阅读