在做項目的時候碰到了一個需求,把app的主題顏色改變成另外一種顏色,由于沒有給出新的素材圖片,需要把現(xiàn)有圖片的顏色改變一下。下面是改變圖片顏色的方法(一般對于單一顏色的圖片)
imageWithRenderingMode:
UIImage有一個方法imageWithRenderingMode:,通過它設置圖片的渲染模式,再通過設置tintcolor,就可以改變圖片顏色。其中參數(shù)部分UIIMageRenderingMode有三個枚舉對應不同的渲染模式:
typedef NS_ENUM(NSInteger, UIImageRenderingMode) {
UIImageRenderingModeAutomatic, // 根據(jù)圖片的使用環(huán)境和所處的繪圖上下文自動調(diào)整渲染模式
UIImageRenderingModeAlwaysOriginal, // 始終繪制圖片原始狀態(tài),不使用Tint Color
UIImageRenderingModeAlwaysTemplate, // 始終根據(jù)Tint Color繪制圖片,忽略圖片的顏色信息
}
使用實例:
UIImage *image = [UIImage imageNamed:@"imageName"];
self.ImageView.image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
[self.ImageView setTintColor:[UIColor redColor]];
imageWithTintColor:
iOS13發(fā)布后,UIImage有一個新增方法imageWithTintColor:,可以通過它改變圖片顏色
使用實例:
UIImage *image = [UIImage imageNamed:@"imageName"];
self.ImageView.image = [image imageWithTintColor:[UIColor redColor]];