推薦一個iOS關於顏色的庫-Wonderful,ios庫-wonderful
Wonderful 這個庫主要是與UIColor息息相連的,其中一共包含四個子檔案,UIColor+Wonderful,UIColor+Separate,SXColorGradientView,SXMarquee。分別對應顏色擴充,色彩分離,色彩坡形,和跑馬燈 4種主要功能。
項目地址:https://github.com/dsxNiubility/Wonderful
一、UIColor+Wonderful
1.這個分類提供了100多種的顏色擴充,譬如卡其色,銀色,草坪綠,金色,巧克力色,等等。 雖然這個功能可能不太適合UI規範都直接制定好了的企業級的App,但是對於一些小型的App和Demo類程式還是有一些用武之地的。再也不用redColor buleColor了,再也不用想要一點特殊顏色就要colorWithRGB了。 只要引入了這個庫,大部分的常用顏色都可以直接使用。
self.view.backgroundColor = [UIColor khakiColor]; self.view.backgroundColor = [UIColor chocolateColor];
2.平均每個色系有10種顏色,不僅可以使用名稱直接敲出,還能使用顏色階梯的宏敲出,在你想不起詞的時候更加方便。 宏從1~10是顏色漸深,可以根據自己的感覺使用淺一級的宏或深一級的宏。
self.view.backgroundColor = Wonderful_YelloeColor4; self.view.backgroundColor = Wonderful_BrownColor4;
3.提供了顏色微調方案,可以讓一個已知顏色的rgb的某值上升或下降若干,可用於不管背景是什麼色,邊框都比背景深20之類的操作。 也可以將認可顏色的詳細值列印出來。
UIColor *navColor = [[UIColor redColor]up:SXColorTypeBlue num:30]; // 在紅色上把藍色色值提高30 UIColor *barColor = [[UIColor blueColor]up:1 num:140]; // 可以直接用枚舉對應的tag UIColor *bgColor = [[UIColor blackColor]down:SXColorTypeAlpha num:10]; // 取一個比黑色稍微淡的顏色 UIColor *lineColor = [bgColor up:3 num:20]; // 不管背景是什麼顏色 線都比背景淺20.
這個可以先看一下效果展示:(gif圖可能比較模糊,但實際上過渡是做的十分高清的)
二、UIColor+Separate
1.提供顏色分離方案,可以將任何顏色的RGB 和alpha的值取出。
UIColor *testC = [UIColor salmonColor]; float r= [testC red]; float g= [testC green]; float b= [testC blue]; float alpha= [testC alpha]; NSLog(@"****** %f,%f,%f,%f",r,g,b,alpha);
2.可以通過一個顏色算出此顏色的反色,使得背景無論被使用者佈建成什麼色,文字顏色都是背景的反色。
self.showLbl1.backgroundColor = [UIColor peachRed]; self.showLbl1.textColor = [[UIColor peachRed]reverseColor];
3.也可以直接列印這個顏色的各項詳細數值
[[UIColor salmonColor]printDetail];
// 列印結果This Color's Red:250, Green:128, Blue:114, Alpha:1decimal red:0.9804 green:0.5020 blue:0.4471 Hexadecimal 0xfa8072
三、SXColorGradientView
1.色彩坡形的view,可以設定任何顏色到透明的過渡。 如果有意,完全可以將導覽列設定成從上往下的漸層色。當下這種漸層色基本都是以一張背景圖片,並且還不宜改變,使用原生方法實現漸層色的成本肯定比圖片要小。
SXColorGradientView *grv1 = [SXColorGradientView createWithColor:[UIColor paleGreen] frame:CGRectMake(10, 10, 80, 30) visible:YES direction:SXColorGradientToRight];
2.也可以設定兩個顏色相互過渡。
SXColorGradientView *grv3 = [SXColorGradientView createWithFromColor:[UIColor peruColor] toColor:[UIColor ghostWhite] frame:CGRectMake(10, 50, 80, 30) direction:SXColorGradientToRight];
3.可以設定向上下左右四個過渡的方向。
typedef NS_ENUM(NSInteger, SXColorGradientDirection) { SXColorGradientToTop = 1, SXColorGradientToLeft = 2, SXColorGradientToBottom = 3, SXColorGradientToRight = 4,};
*4.後續會增加傳入一個數組,然後搭建一個多個顏色過渡的view。
四、SXMarquee
1.現在iOS的項目中,帶有跑馬燈的項目少之又少,安卓有內建的跑馬燈控制項,但iOS出於各種原因,至少我還沒見過帶跑馬燈的項目,其實這個功能應該是很常用很方便很有意義的。 當下做跑馬燈的第三方庫沒有幾個,並且大多存在下列問題:代碼老舊,實現複雜,只能實現白色的背景,不能綁定點擊事件,點擊暫停拖動等。
SXMarquee *mar3 = [[SXMarquee alloc]initWithFrame:CGRectMake(20, 390, 335, 25) speed:2 Msg:@"If you've submitted an update to fix a critical bug in your app on the App Store and you are requesting an expedited review." bgColor:[UIColor goldColor] txtColor:[UIColor goldenrod]]; [mar3 changeMarqueeLabelFont:[UIFont boldSystemFontOfSize:12]]; [mar3 start];
2.跑馬燈的背景可以設定任何顏色,這個是基於顏色過渡view做的。
3.跑馬燈可以實現點擊拖動,或者綁定更多點擊事件。
如果你不是在董鉑然部落格園看到本文 可點擊查看原文。