iOS工具類

前言

現(xiàn)在好多Dev都開始創(chuàng)建并使用工具類,因?yàn)榘岩恍┖芏嗟胤接玫降梅椒▽懙焦ぞ哳惱锩鏁?huì)顯得很簡(jiǎn)單明了,最主要的是使用起來(lái)方便。這里想用了直接包含以下頭文件調(diào)用以下就可以抚垄,比如iToast類,只是顯示一個(gè)類似安卓提示的一個(gè)小黑框而已瓶竭,每次只需要調(diào)用一下傳進(jìn)去要顯示的字符串就可以了督勺。
---哎呀廢話太多了。
現(xiàn)在我跟大家分享下自己創(chuàng)建的工具類

1.創(chuàng)建工具類

很顯然是繼承自NSObject的斤贰,自己打開Xcode創(chuàng)建一個(gè)繼承自NSObject的類智哀,我的起名字叫做KK_Utils,在.h中寫類名荧恍,全部是類方法瓷叫,調(diào)用起來(lái)方便屯吊,在.m中實(shí)現(xiàn)。

2.實(shí)現(xiàn)具體方法
* 1在iOS編程中必不可少的就是十六進(jìn)制的顏色值摹菠,所以十六進(jìn)制顏色轉(zhuǎn)換必不可少
/*
 * 十六進(jìn)制顏色值轉(zhuǎn)換成UIColor對(duì)象
 */
+ (UIColor *) hexStringToColor: (NSString *) stringToConvert;
+ (UIColor *) hexStringToColor: (NSString *) stringToConvert{
    NSString *cString = [[stringToConvert stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];
    // String should be 6 or 8 characters
    if ([cString length] < 6) return [UIColor blackColor];
    // strip 0X if it appears
    if ([cString hasPrefix:@"0X"]) cString = [cString substringFromIndex:2];
    if ([cString hasPrefix:@"#"]) cString = [cString substringFromIndex:1];
    if ([cString length] != 6) return [UIColor blackColor];
    // Separate into r, g, b substrings
    
    NSRange range;
    range.location = 0;
    range.length = 2;
    NSString *rString = [cString substringWithRange:range];
    
    range.location = 2;
    NSString *gString = [cString substringWithRange:range];
    
    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:1.0f];
}
* 2反過(guò)來(lái)顏色轉(zhuǎn)換成十六進(jìn)制的字符串盒卸,這個(gè)基本上沒(méi)有什么人會(huì)用到,我基本上不用
/*
 *  UIColor對(duì)象轉(zhuǎn)換成十六進(jìn)制顏色值字符串
 */
+ (NSString *)changeUIColorToRGB:(UIColor *)color;
//顏色轉(zhuǎn)換為字符串
+ (NSString *) changeUIColorToRGB:(UIColor *)color{
    const CGFloat *cs=CGColorGetComponents(color.CGColor);
    NSString *r = [NSString stringWithFormat:@"%@",[self  ToHex:cs[0]*255]];
    NSString *g = [NSString stringWithFormat:@"%@",[self  ToHex:cs[1]*255]];
    NSString *b = [NSString stringWithFormat:@"%@",[self  ToHex:cs[2]*255]];
    return [NSString stringWithFormat:@"#%@%@%@",r,g,b];  
}
* 3這個(gè)方法是我比較喜歡的次氨,利用顏色來(lái)創(chuàng)建圖片蔽介,修改導(dǎo)航顏色的時(shí)候很好用
/*
 *  使用UIColor創(chuàng)建UIImage
 */
+ (UIImage *) createImageWithColor: (UIColor *)color;
// 使用UIColor創(chuàng)建UIImage
+ (UIImage *)createImageWithColor: (UIColor *)color;{
    CGRect rect=CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
    UIGraphicsBeginImageContext(rect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetFillColorWithColor(context, [color CGColor]);
    CGContextFillRect(context, rect);
    
    UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return theImage;
}
* 4彈出矩形黑色提示窗(類似安卓的提示窗)需要下載一個(gè)類iToast,文件減小易用煮寡,下載下來(lái)添加到工程里面就可以了虹蓄,但是我在使用過(guò)程中發(fā)現(xiàn)了一個(gè)bug,就是傳入要顯示的字符串為nil的時(shí)候被導(dǎo)致崩潰幸撕,因?yàn)檫@個(gè)類里面用了屬性字符串薇组,遇到nil會(huì)崩潰,自己可以在崩潰的地方自行加一個(gè)判斷坐儿。

在.m中包含頭文件

#import "iToast.h"

顯示位置可以設(shè)置多個(gè)律胀,這里提供兩個(gè)位置一個(gè)是中間,一個(gè)是中偏下的位置

+ (void)showItoast:(NSString *)str;
+ (void)showItoastInCenter:(NSString *)str;
+ (void)showItoast:(NSString *)str{
    dispatch_async(dispatch_get_main_queue(), ^{
        iToast *itost = [[iToast makeText:str] setGravity:iToastGravityBottom];
        [itost setDuration:iToastDurationNormal];
    
        [itost show:iToastTypeWarning];
    });
    
}
+ (void)showItoastInCenter:(NSString *)str{
    dispatch_async(dispatch_get_main_queue(), ^{
        iToast *itost = [[iToast makeText:str] setGravity:iToastGravityCenter];
        [itost setDuration:iToastDurationShort];
        [itost show:iToastTypeNotice];
    });
}
* 5 同上顯示菊花也是一樣貌矿,網(wǎng)絡(luò)請(qǐng)求或者加載數(shù)據(jù)時(shí)候難免會(huì)用到菊花我使用的是

MBProgressHUD炭菌。

+(void)showHUD:(NSString *)text andView:(UIView *)view andHUD:(MBProgressHUD *)hud;
+(void)showHUD:(NSString *)text andView:(UIView *)view andHUD:(MBProgressHUD *)hud{
    [view addSubview:hud];
    hud.labelText = text;//顯示提示
    hud.dimBackground = YES;//使背景成黑灰色,讓MBProgressHUD成高亮顯示
    hud.square = YES;//設(shè)置顯示框的高度和寬度一樣
    hud.removeFromSuperViewOnHide = YES;
    [hud show:YES];
}
//使用示例
 MBProgressHUD *hud = [[MBProgressHUD alloc] initWithView:self.view];
 [KK_Utils showHUD:@"正在加載" andView:self.view andHUD:hud];

//關(guān)閉時(shí)執(zhí)行代碼:
hud.hidden = YES;

3.總結(jié)

這個(gè)工具類會(huì)持續(xù)更新站叼,比如MD5加密字符串等等娃兽,希望大神們多多指教,歡迎評(píng)論Star尽楔。
歡迎關(guān)注我的微博博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市第练,隨后出現(xiàn)的幾起案子阔馋,更是在濱河造成了極大的恐慌,老刑警劉巖娇掏,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件呕寝,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡婴梧,警方通過(guò)查閱死者的電腦和手機(jī)下梢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)塞蹭,“玉大人孽江,你說(shuō)我怎么就攤上這事》纾” “怎么了岗屏?”我有些...
    開封第一講書人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵辆琅,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我这刷,道長(zhǎng)婉烟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任暇屋,我火速辦了婚禮似袁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘咐刨。我一直安慰自己叔营,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開白布所宰。 她就那樣靜靜地躺著绒尊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪仔粥。 梳的紋絲不亂的頭發(fā)上婴谱,一...
    開封第一講書人閱讀 50,084評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音躯泰,去河邊找鬼谭羔。 笑死,一個(gè)胖子當(dāng)著我的面吹牛麦向,可吹牛的內(nèi)容都是我干的瘟裸。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼诵竭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼话告!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起卵慰,我...
    開封第一講書人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤沙郭,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后裳朋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體病线,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年鲤嫡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了送挑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡暖眼,死狀恐怖惕耕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情罢荡,我是刑警寧澤赡突,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布对扶,位于F島的核電站,受9級(jí)特大地震影響惭缰,放射性物質(zhì)發(fā)生泄漏浪南。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一漱受、第九天 我趴在偏房一處隱蔽的房頂上張望络凿。 院中可真熱鬧,春花似錦昂羡、人聲如沸絮记。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)怨愤。三九已至,卻和暖如春蛹批,著一層夾襖步出監(jiān)牢的瞬間撰洗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工腐芍, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留差导,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓猪勇,卻偏偏與公主長(zhǎng)得像设褐,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子泣刹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容