日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

iOS开发技巧(系列十八:扩展UIColor,支持十六进制颜色设置)

發(fā)布時(shí)間:2023/11/27 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS开发技巧(系列十八:扩展UIColor,支持十六进制颜色设置) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

新建一個(gè)Category,命名為UIColor+Hex,表示UIColor支持十六進(jìn)制Hex顏色設(shè)置。

UIColor+Hex.h文件,

#import?<UIKit/UIKit.h> #define?RGBA_COLOR(R,?G,?B,?A)?[UIColor?colorWithRed:((R)?/?255.0f)?green:((G)?/?255.0f)?blue:((B)?/?255.0f)?alpha:A] #define?RGB_COLOR(R,?G,?B)?[UIColor?colorWithRed:((R)?/?255.0f)?green:((G)?/?255.0f)?blue:((B)?/?255.0f)?alpha:1.0f] @interface?UIColor?(Hex) +?(UIColor?*)colorWithHexString:(NSString?*)color; //從十六進(jìn)制字符串獲取顏色, //color:支持@“#123456”、?@“0X123456”、?@“123456”三種格式 +?(UIColor?*)colorWithHexString:(NSString?*)color?alpha:(CGFloat)alpha; @end

上面的代碼在開(kāi)頭是兩個(gè)宏定義,就是對(duì)[UIColor colorWithRed:green:blue:alpha]方法的簡(jiǎn)化,在UIColor(Hex)中聲明兩個(gè)方法 -colorWithHexString和-colorWithHexString:alpha,這個(gè)很好理解。

UIColor+Hex.m文件

#import?"UIColor+Hex.h" @implementation?UIColor?(Hex) +?(UIColor?*)colorWithHexString:(NSString?*)color?alpha:(CGFloat)alpha { ????//刪除字符串中的空格 ????NSString?*cString?=?[[color?stringByTrimmingCharactersInSet:[NSCharacterSet?whitespaceAndNewlineCharacterSet]]?uppercaseString]; ????//?String?should?be?6?or?8?characters ????if?([cString?length]?<?6) ????{ ????????return?[UIColor?clearColor]; ????} ????//?strip?0X?if?it?appears ????//如果是0x開(kāi)頭的,那么截取字符串,字符串從索引為2的位置開(kāi)始,一直到末尾 ????if?([cString?hasPrefix:@"0X"]) ????{ ????????cString?=?[cString?substringFromIndex:2]; ????} ????//如果是#開(kāi)頭的,那么截取字符串,字符串從索引為1的位置開(kāi)始,一直到末尾 ????if?([cString?hasPrefix:@"#"]) ????{ ????????cString?=?[cString?substringFromIndex:1]; ????} ????if?([cString?length]?!=?6) ????{ ????????return?[UIColor?clearColor]; ????} ???? ????//?Separate?into?r,?g,?b?substrings ????NSRange?range; ????range.location?=?0; ????range.length?=?2; ????//r ????NSString?*rString?=?[cString?substringWithRange:range]; ????//g ????range.location?=?2; ????NSString?*gString?=?[cString?substringWithRange:range]; ????//b ????range.location?=?4; ????NSString?*bString?=?[cString?substringWithRange:range]; ???? ????//?Scan?values ????unsigned?int?r,?g,?b; ????[[NSScanner?scannerWithString:rString]?scanHexInt:&r]; ????[[NSScanner?scannerWithString:gString]?scanHexInt:&g]; ????[[NSScanner?scannerWithString:bString]?scanHexInt:&b]; ????return?[UIColor?colorWithRed:((float)r?/?255.0f)?green:((float)g?/?255.0f)?blue:((float)b?/?255.0f)?alpha:alpha]; } //默認(rèn)alpha值為1 +?(UIColor?*)colorWithHexString:(NSString?*)color { ????return?[self?colorWithHexString:color?alpha:1.0f]; } @end

這樣就擴(kuò)展了UIColor,支持十六進(jìn)制顏色設(shè)置。下面舉個(gè)栗子,設(shè)置UIButton一些顏色特征,來(lái)說(shuō)明該擴(kuò)展的使用,

#import?"UIColor+Hex.h" //省略多余的代碼 //設(shè)置導(dǎo)航欄右側(cè)的BarButtonItem為Button -?(void)setupNavigationItem {??? ????UIView?*rightView?=?[[UIView?alloc]?init]; ????rightView.bounds?=?CGRectMake(0,?0,?52,?44); ???? ????UIButton?*rightButton?=?[UIButton?buttonWithType:UIButtonTypeCustom]; ????rightButton.frame?=?CGRectMake(-6,?0,?52,?44); ????rightButton.backgroundImageEdgeInsets?=?UIEdgeInsetsMake(7,?0,?7,?0); ????//kSetting是國(guó)際化的字符串"設(shè)置" ????[rightButton?setTitle:NVSLocalizedString(@"kSetting",?nil)?forState:UIControlStateNormal]; ????//使用宏定義的RGB_COLOR //????[rightButton?setTitleColor:RGB_COLOR(160,?170,?150)?forState:UIControlStateHighlighted]; ????//使用UIColor+Hex擴(kuò)展 ????[rightButton?setTitleColor:[UIColor?colorWithHexString:@"#708c3b"]?forState:UIControlStateNormal]; ????rightButton.titleLabel.font?=?[UIFont?fontWithName:@"Heiti?SC"?size:12.f]; ????[rightButton?setBackgroundImage:[UIImage?imageNamed:@"device_setting_bg"] ???????????????????????????forState:UIControlStateNormal]; ????[rightButton?setBackgroundImage:[UIImage?imageNamed:@"device_setting_bg_press"] ???????????????????????????forState:UIControlStateHighlighted]; ????[rightButton?addTarget:self?action:@selector(settingBtnPresss:) ??????????forControlEvents:UIControlEventTouchUpInside]; ????[rightView?addSubview:rightButton]; ???? ????UIBarButtonItem?*rightBarButtonItem?=?[[UIBarButtonItem?alloc]?initWithCustomView:rightView]; ????[self.navigationItem?setRightBarButtonItem:rightBarButtonItem?animated:YES]; ? ????[rightBarButtonItem?release]; ????[rightView?release]; }

恩,使用差不多就這么簡(jiǎn)單,總結(jié)一下,本篇博客主要有以下幾個(gè)細(xì)節(jié)或者說(shuō)知識(shí)點(diǎn),

(1)宏定義RGB_COLOR和RGBA_COLOR可以設(shè)置顏色

(2)UIColor+Hex擴(kuò)展可以設(shè)置顏色

(3)導(dǎo)航欄上面的BarButtonItem怎么設(shè)置為Button

(4)Button一些常用和不常用的屬性設(shè)置

轉(zhuǎn)載于:https://www.cnblogs.com/Free-Thinker/p/5868529.html

總結(jié)

以上是生活随笔為你收集整理的iOS开发技巧(系列十八:扩展UIColor,支持十六进制颜色设置)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。