iOS開發(fā)小技巧總結(jié)

1.設(shè)置導(dǎo)航欄標(biāo)題顏色

UIColor *whiteColor = [UIColor redColor];
    NSDictionary *dic = [NSDictionary dictionaryWithObject:whiteColor forKey:NSForegroundColorAttributeName];
    [self.navigationController.navigationBar setTitleTextAttributes:dic];

2.設(shè)置view半透明倦蚪,subView不跟著變--通過設(shè)置背景色

UIView * backView = [[UIView alloc]initWithFrame:self.view.frame];
    backView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.5];
    
//    backView.alpha = 0.3;//錯(cuò)誤做法
    [self.view addSubview:backView];
    
    UIButton * button = [[UIButton alloc]init];
    button.backgroundColor = [UIColor redColor];
    button.frame = CGRectMake(200, 200, 200, 200);
    button.center = backView.center;
    [backView addSubview:button];

3.設(shè)置VIew的部分圓角

CGRect rect = button.bounds;
    CGSize radio = CGSizeMake(50, 50);//圓角尺寸
    UIRectCorner corner = UIRectCornerTopLeft|UIRectCornerTopRight;//這只圓角位置
    UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:rect byRoundingCorners:corner cornerRadii:radio];
    CAShapeLayer *masklayer = [[CAShapeLayer alloc]init];//創(chuàng)建shapelayer
    masklayer.frame = button.bounds;
    masklayer.path = path.CGPath;//設(shè)置路徑
    button.layer.mask = masklayer;

4.數(shù)組快速求和侈离,平均值蹄葱,最大值峦筒,最小值

 NSArray *array = [NSArray arrayWithObjects:@"2.0", @"2.3", @"3.0", @"4.0", @"10", nil];
    CGFloat sum = [[array valueForKeyPath:@"@sum.floatValue"] floatValue];
    CGFloat avg = [[array valueForKeyPath:@"@avg.floatValue"] floatValue];
    CGFloat max =[[array valueForKeyPath:@"@max.floatValue"] floatValue];
    CGFloat min =[[array valueForKeyPath:@"@min.floatValue"] floatValue];
    NSLog(@"%f\n向下取整%f\n向上取整%f\n%f\n%f\n%f",sum,floor(sum),ceil(sum),avg,max,min);

5.navigationBar根據(jù)滑動(dòng)距離的漸變色實(shí)現(xiàn)

//第一種
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    CGFloat offsetToShow = 200.0;//滑動(dòng)多少就完全顯示
    CGFloat alpha = 1 - (offsetToShow - scrollView.contentOffset.y) / offsetToShow;
    [[self.navigationController.navigationBar subviews] objectAtIndex:0].alpha = alpha;
}
//第二種
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    CGFloat offsetToShow = 200.0;
    CGFloat alpha = 1 - (offsetToShow - scrollView.contentOffset.y) / offsetToShow;
 
    [self.navigationController.navigationBar setShadowImage:[UIImage new]];
    [self.navigationController.navigationBar setBackgroundImage:[self imageWithColor:[[UIColor orangeColor]colorWithAlphaComponent:alpha]] forBarMetrics:UIBarMetricsDefault];
}
 
//根據(jù)顏色生成圖片
- (UIImage *)imageWithColor:(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.數(shù)組快速求和究西,平均值,最大值物喷,最小值

 NSArray *array = [NSArray arrayWithObjects:@"2.0", @"2.3", @"3.0", @"4.0", @"10", nil];
    CGFloat sum = [[array valueForKeyPath:@"@sum.floatValue"] floatValue];
    CGFloat avg = [[array valueForKeyPath:@"@avg.floatValue"] floatValue];
    CGFloat max =[[array valueForKeyPath:@"@max.floatValue"] floatValue];
    CGFloat min =[[array valueForKeyPath:@"@min.floatValue"] floatValue];
    NSLog(@"%f\n向下取整%f\n向上取整%f\n%f\n%f\n%f",sum,floor(sum),ceil(sum),avg,max,min);

7.獲取webView的高度

CGFloat height = [[self.webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"] floatValue];

8.圖片緩存的清空(包括SD的卤材,可以同時(shí)清除session 和 cookie的緩存)

// 清理內(nèi)存
[[SDImageCache sharedImageCache] clearMemory];
 
// 清理webview 緩存
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in [storage cookies]) {
    [storage deleteCookie:cookie];
}
 
NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
[config.URLCache removeAllCachedResponses];
[[NSURLCache sharedURLCache] removeAllCachedResponses];
 
// 清理硬盤
[[SDImageCache sharedImageCache] clearDiskOnCompletion:^{
    [MBProgressHUD hideAllHUDsForView:self.view animated:YES];
 
    [self.tableView reloadData];
}];

9.UIView 自帶動(dòng)畫翻轉(zhuǎn)界面


- (IBAction)changeImages:(id)sender
{
    CGContextRef context = UIGraphicsGetCurrentContext();
 
    [UIView beginAnimations:nil context:context];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    [UIView setAnimationDuration:1.0];
 
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:_parentView cache:YES];
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:_parentView cache:YES];
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:_parentView cache:YES];
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:_parentView cache:YES];
 
    NSInteger purple = [[_parentView subviews] indexOfObject:self.image1];
    NSInteger maroon = [[_parentView subviews] indexOfObject:self.image2];
 
    [_parentView exchangeSubviewAtIndex:purple withSubviewAtIndex:maroon];
 
    [UIView setAnimationDelegate:self];
    [UIView commitAnimations];
 
 
}

10.工程中查看是否使用 IDFA

打開終端,到工程目錄中峦失, 輸入:

grep -r advertisingIdentifier .

可以看到那些文件中用到了IDFA扇丛,如果用到了就會被顯示出來

11.動(dòng)態(tài)計(jì)算文本高度

NSDictionary *attribute = @{NSFontAttributeName: [UIFont systemFontOfSize:13]};
CGSize size = [@"相關(guān)NSString" boundingRectWithSize:CGSizeMake(100, 0) options: NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:attribute context:nil].size;

12.關(guān)閉/收起鍵盤方法

1、點(diǎn)擊Return按扭時(shí)收起鍵盤
- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{
    return [textField resignFirstResponder]; 
}
2尉辑、點(diǎn)擊背景View收起鍵盤
[self.view endEditing:YES];
3帆精、你可以在任何地方加上這句話,可以用來統(tǒng)一收起鍵盤
[[[UIApplication sharedApplication] keyWindow] endEditing:YES];

13.修改textField的placeholder的字體顏色、大小

//方法1
self.textField.placeholder = @"username is in here!";
[self.textField setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"];
[self.textField setValue:[UIFont boldSystemFontOfSize:16] forKeyPath:@"_placeholderLabel.font"];
//方法二(實(shí)際項(xiàng)目中使用過)
NSString *string = @"美麗新世界";
    NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:string];
 
    [attributedString addAttribute:NSForegroundColorAttributeName
                             value:[UIColor redColor]
                             range:NSMakeRange(0, [string length])];
 
    [attributedString addAttribute:NSFontAttributeName
                             value:[UIFont systemFontOfSize:16]
                             range:NSMakeRange(0, [string length])];
 
    self.textField.attributedPlaceholder = attributedString;

14.待發(fā)現(xiàn)

...

15.待發(fā)現(xiàn)

...

16.待發(fā)現(xiàn)

...

ps:第一次寫沒有什么經(jīng)驗(yàn)就寫一點(diǎn)基礎(chǔ)簡單的吧卓练,我分享的這些都是經(jīng)過自己驗(yàn)證過的隘蝎,大家可以放心使用
參考文章1
參考文章2

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市襟企,隨后出現(xiàn)的幾起案子嘱么,更是在濱河造成了極大的恐慌,老刑警劉巖顽悼,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件曼振,死亡現(xiàn)場離奇詭異,居然都是意外死亡蔚龙,警方通過查閱死者的電腦和手機(jī)冰评,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來府蛇,“玉大人集索,你說我怎么就攤上這事屿愚』憧纾” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵妆距,是天一觀的道長穷遂。 經(jīng)常有香客問我,道長娱据,這世上最難降的妖魔是什么蚪黑? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮中剩,結(jié)果婚禮上忌穿,老公的妹妹穿的比我還像新娘。我一直安慰自己结啼,他們只是感情好掠剑,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著郊愧,像睡著了一般朴译。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上属铁,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天眠寿,我揣著相機(jī)與錄音,去河邊找鬼焦蘑。 笑死盯拱,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播狡逢,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼迹辐,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了甚侣?” 一聲冷哼從身側(cè)響起明吩,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎殷费,沒想到半個(gè)月后印荔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡详羡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年仍律,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片实柠。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡水泉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出窒盐,到底是詐尸還是另有隱情草则,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布蟹漓,位于F島的核電站炕横,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏葡粒。R本人自食惡果不足惜份殿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嗽交。 院中可真熱鬧卿嘲,春花似錦、人聲如沸夫壁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽掌唾。三九已至放前,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間糯彬,已是汗流浹背凭语。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留撩扒,地道東北人似扔。 一個(gè)月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓吨些,卻偏偏與公主長得像,于是被迫代替她去往敵國和親炒辉。 傳聞我的和親對象是個(gè)殘疾皇子豪墅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

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

  • 打印 View 所有子視圖 layoutSubviews 調(diào)用的調(diào)用時(shí)機(jī) NSString 過濾特殊字符 Tran...
    devZhang閱讀 574評論 0 9
  • 獲取子視圖所在的父視圖 在開發(fā)中我們經(jīng)常會遍歷父視圖中的子視圖,那么反過來怎么獲取子視圖的父控制器呢 控制手機(jī)不鎖...
    Erica0708閱讀 281評論 1 1
  • 1.設(shè)置標(biāo)簽的文字顯示不同顏色黔寇。 2.定時(shí)器的取消偶器,關(guān)閉,重啟(1).設(shè)置定時(shí)器缝裤。 (2).定時(shí)器關(guān)閉 [_t...
    司馬捷閱讀 490評論 0 10
  • 別拿豆包不當(dāng)干糧屏轰。 在iOS日常開發(fā)中,往往一個(gè)小技巧就可以幫助解決頭疼的bug憋飞,嚴(yán)謹(jǐn)代碼規(guī)范霎苗,提升編碼效率。小技...
    皓皓大帝閱讀 261評論 0 1
  • 《燈光》 燈的晦暗的光 是冰冷的眼 透過混沌的黑暗 看造化 把我的 希望碎成失望 又把失望殘拼成絕望 《臺風(fēng)》 咆...
    今時(shí)明月_閱讀 328評論 1 3