UIImage UIImageRenderingModeAlwaysTemplate渲染image的顏色

UIImageRenderingMode 有三種渲染模式:

UIImageRenderingModeAutomatic ? ? ? ?// 根據(jù)圖片的使用環(huán)境和所處的繪圖上下文自動調(diào)整渲染模式(默認(rèn)屬性)。

UIImageRenderingModeAlwaysOriginal ? // 始終繪制圖片原始狀態(tài),設(shè)置Tint Color屬性無效。

UIImageRenderingModeAlwaysTemplate ? // 始終根據(jù)Tint Color繪制圖片(顏色)顯示,忽略圖片的顏色信息(也就是圖片原本的東西是不顯示的)。

調(diào)用此屬性

UIImage *normalImage = [[UIImage imageNamed:@"111@2x"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

有何用處:個人經(jīng)常用到的有兩種

A

美工切出來一個返回按鈕 ?顏色是黃色 但有一個頁面需要這個返回按鈕是紅色 ?那就沒必要美工再切一張紅色的按鈕,而是利用UIImageRenderingModeAlwaysTemplate這個屬性把黃色按鈕改成紅色

例 ?代碼

UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];

imageView.image = [[UIImage imageNamed:@"111@2x"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

imageView.tintColor = [UIColor purpleColor];

[self.view addSubview:imageView];

B

UIButton 的點(diǎn)擊狀態(tài) ?因為UIButton設(shè)置背景色 ?點(diǎn)擊UIButton ?是沒有點(diǎn)擊色的 ?但是UIButton的背景圖片有點(diǎn)擊色 那就可以利用UIImageRenderingModeAlwaysTemplate這個屬性改變?nèi)我庖粡垐D片的顏色為我們需要的那個顏色

例 ?代碼

UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];

btn.tintColor = [UIColor brownColor];

[btn setBackgroundImage:[[UIImage imageNamed:@"111@2x"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] forState:UIControlStateNormal];

[self.view addSubview:btn];

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容