iOS開(kāi)發(fā)之小技巧

當(dāng)控制器界面有scrollView的時(shí)候可能view的frame會(huì)往下走

self.automaticallyAdjustsScrollViewInsets = NO;

文件名后綴相關(guān)的東西

//從路徑中獲得完整的文件名 (帶后綴)
NSString *fileName = [filePath lastPathComponent];
//獲得文件名 (不帶后綴)
NSString *fileName1 = [filePath stringByDeletingPathExtension];
//獲得文件的后綴名 (不帶'.')
NSString *suffix = [filePath pathExtension];

通過(guò)字符串執(zhí)行方法

SEL selector = NSSelectorFromString(selectorName);
//執(zhí)行方法(如果直接使用[self performSelector:selector]會(huì)有警告,解決辦法:http://www.tuicool.com/articles/iu6zuu)
[self performSelector:selector withObject:nil afterDelay:0.0];

設(shè)置控件的邊界

//設(shè)置按鈕的樣式
- (void)setupShoppingBtn
{
    self.shopingBtn.layer.cornerRadius = 3;
    self.shopingBtn.layer.masksToBounds = YES;
    self.shopingBtn.layer.borderColor = [UIColor cz_colorWithHex:0xd9d9d9].CGColor;
    self.shopingBtn.layer.borderWidth = 1;
}

設(shè)置鍵盤(pán)在tableView滾動(dòng)的時(shí)候消失掉:

//設(shè)置鍵盤(pán)在tableview滾動(dòng)的時(shí)候消失.
tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;

設(shè)置tableView的cell之間的分隔線的長(zhǎng)短

//設(shè)置的效果是與屏幕寬對(duì)齊,也可以自定義值
self.tableView.separatorInset = UIEdgeInsetsZero; 

設(shè)置tableView的cell的點(diǎn)擊效果為無(wú)

cell.selectionStyle = UITableViewCellSelectionStyleNone;

設(shè)置視圖或者繼承自視圖控件的邊框

UIView *baseView = [[UIView alloc]init];
baseView.layer.borderColor = [UIColor redColor].CGColor; //設(shè)置邊框的顏色
baseView.layer.borderWidth = 2;  //設(shè)置邊框的寬度

圖片渲染,系統(tǒng)默認(rèn)會(huì)渲染成藍(lán)色,比如說(shuō)tabBar

//方式一
[[UIImage imageNamed:@""]imageWithRenderingMode:(UIImageRenderingMode)];
//方式二
在Assets.xcassets中選中圖片,然后選擇右邊的第三個(gè)屬性的Render As這個(gè)屬性,然后修改即可.

設(shè)置tabbar/navigationBar上的字體顏色

1>設(shè)置tabbarItem上的字體的顏色:
A:"注意是控制器的tabBarItem的設(shè)置屬性"

//普通狀態(tài)下的文字屬性
NSMutableDictionary *normalAttrs = [NSMutableDictionary dictionary];
normalAttrs[NSFontAttributeName] = [UIFont systemFontOfSize:14];   //字號(hào)
normalAttrs[NSForegroundColorAttributeName] = [UIColor grayColor]; //前景色
[vc.tabBarItem setTitleTextAttributes:normalAttrs forState:UIControlStateNormal];
//選中狀態(tài)下的文字屬性
NSMutableDictionary *selectedAttrs = [NSMutableDictionary dictionary];
selectedAttrs[NSForegroundColorAttributeName] = [UIColor darkGrayColor]; //前景色
[vc.tabBarItem setTitleTextAttributes:selectedAttrs forState:UIControlStateSelected];

B:"注意是全局設(shè)置所有tabBarItem的屬性"

UITabBarItem *item = [UITabBarItem appearance];
//普通狀態(tài)下的文字屬性
NSMutableDictionary *normalAttrs = [NSMutableDictionary dictionary];
normalAttrs[NSFontAttributeName] = [UIFont systemFontOfSize:14];
normalAttrs[NSForegroundColorAttributeName] = [UIColor grayColor];
[item setTitleTextAttributes:normalAttrs forState:UIControlStateNormal];
//選中狀態(tài)下的文字屬性
NSMutableDictionary *selectedAttrs = [NSMutableDictionary dictionary];
selectedAttrs[NSForegroundColorAttributeName] = [UIColor darkGrayColor];
[item setTitleTextAttributes:normalAttrs forState:UIControlStateSelected];

2>設(shè)置navigationItem上的字體顏色及圖標(biāo)的渲染色
A:"設(shè)置navigationBar的渲染色,影響到leftItem/rightItem的圖像的背景色顏色以及文字顏色"

self.navigationController.navigationBar.tintColor = [UIColor redColor];

B:"這個(gè)是navigationBar設(shè)置title屬性"

NSMutableDictionary *normalAttrs = [NSMutableDictionary dictionary];
normalAttrs[NSFontAttributeName] = [UIFont systemFontOfSize:14];
normalAttrs[NSForegroundColorAttributeName] = [UIColor grayColor];
[self.navigationController.navigationBar setTitleTextAttributes:normalAttrs forState:UIControlStateNormal];

C:"這個(gè)是單獨(dú)的item獨(dú)自設(shè)定文字屬性"

NSMutableDictionary *normalAttrs = [NSMutableDictionary dictionary];
normalAttrs[NSFontAttributeName] = [UIFont systemFontOfSize:14];
normalAttrs[NSForegroundColorAttributeName] = [UIColor grayColor];
[self.navigationItem.leftBarButtonItem setTitleTextAttributes:normalAttrs forState:UIControlStateNormal];

設(shè)置同組cell之間的間距問(wèn)題:"注意默認(rèn)同組之間是沒(méi)有間距的"

巧妙利用TableView的背景作為分割線---萬(wàn)能方式:"設(shè)置cell的frame"
關(guān)鍵點(diǎn):當(dāng)我們不管是賦值cell的frame還是自動(dòng)計(jì)算行高,都會(huì)計(jì)算出來(lái)的frme給cell的frame賦值
注意點(diǎn):如果要看起來(lái)有間距感,可以設(shè)置tableView的背景顏色,并且為了美觀可以將separatorStyle設(shè)置為None
A:OC代碼://重寫(xiě)setFrame方法

-(void)setFrame:(CGRect)frame {
    //只修改高度
    frame.size.height-=5; //當(dāng)為1的時(shí)候可以作為分割線
    //調(diào)用系統(tǒng)方法設(shè)置
    [super setFrame:frame];
}

B:SWIFT代碼:

override var frame: CGRect{
    didSet{
        var newFrame = frame
        newFrame.size.height -= 5
        super.frame = newFrame
    }
}

設(shè)置分割線樣式或者長(zhǎng)短

1>設(shè)置分割線樣式:系統(tǒng)的

self.tableView.separatorStyle = UITableViewCellSelectionStyleNone;

2>設(shè)置分割線的長(zhǎng)短問(wèn)題:

//表示和cell的寬度一樣長(zhǎng)
self.tableView.separatorInset = UIEdgeInsetsZero; 

3>將分割線的樣式設(shè)置為None,然后再自定義一個(gè)view加入到cell當(dāng)中,或者是以tableView的背景色來(lái)天然作為分割線

Swift中微博項(xiàng)目截取超鏈接標(biāo)簽語(yǔ)言中的內(nèi)容:
例如如下字符串:<a rel="nofollow">新浪微博</a>"
代碼如下:

//字符串">的range:leadingRange
guard let leadingRange: Range = (statusModel?.source?.range(of: "\">")) else{
    return ""
}
//字符串</a>的range:tailingRange
let tailingRange: Range = (statusModel?.source?.range(of: "</a>"))!
//新字符創(chuàng)的range為leadingRange的高bound以及tailingRange的低bound
let newRange: Range = Range(uncheckedBounds: (lower: leadingRange.upperBound, upper: tailingRange.lowerBound))
//然后取出新的range所對(duì)應(yīng)的字符串
let sourceString: String = (statusModel?.source?.substring(with: newRange))!
return sourceString

設(shè)置導(dǎo)航欄隱藏,注意以下兩種隱藏式不一樣的

A:"navigationBarHidden 隱藏整個(gè)導(dǎo)航欄控制器"

self.navigationController.navigationBarHidden = YES;
self.navigationController.navigationBarHidden = NO;

B:"navigationBar.Hidden只是隱藏導(dǎo)航對(duì)象中的navigationBar;"

self.navigationController.navigationBar.Hidden = YES;
self.navigationController.navigationBar.Hidden = NO;

清除Xcode8控制臺(tái)上多余消息

1>選擇Product->Scheme->Edit Scheme ...或者直接按 command + shift + < 快捷鍵泽裳,
2>在彈出的窗口中Environment Variables 下添加 OS_ACTIVITY_MODE disable

更多的iOS開(kāi)發(fā)的小技巧和經(jīng)驗(yàn)請(qǐng)參考:多年iOS開(kāi)發(fā)經(jīng)驗(yàn)總結(jié)(一)

小七.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末尿孔,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子酬核,更是在濱河造成了極大的恐慌,老刑警劉巖酥筝,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件梅忌,死亡現(xiàn)場(chǎng)離奇詭異娇钱,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)并扇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)去团,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人穷蛹,你說(shuō)我怎么就攤上這事土陪。” “怎么了肴熏?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵鬼雀,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我扮超,道長(zhǎng)取刃,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任出刷,我火速辦了婚禮璧疗,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘馁龟。我一直安慰自己崩侠,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布坷檩。 她就那樣靜靜地躺著却音,像睡著了一般。 火紅的嫁衣襯著肌膚如雪矢炼。 梳的紋絲不亂的頭發(fā)上系瓢,一...
    開(kāi)封第一講書(shū)人閱讀 50,096評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音句灌,去河邊找鬼夷陋。 笑死欠拾,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的骗绕。 我是一名探鬼主播藐窄,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼酬土!你這毒婦竟也來(lái)了荆忍?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤撤缴,失蹤者是張志新(化名)和其女友劉穎刹枉,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體腹泌,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嘶卧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了凉袱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片芥吟。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖专甩,靈堂內(nèi)的尸體忽然破棺而出钟鸵,到底是詐尸還是另有隱情,我是刑警寧澤涤躲,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布棺耍,位于F島的核電站,受9級(jí)特大地震影響种樱,放射性物質(zhì)發(fā)生泄漏蒙袍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一嫩挤、第九天 我趴在偏房一處隱蔽的房頂上張望害幅。 院中可真熱鬧,春花似錦岂昭、人聲如沸以现。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)邑遏。三九已至,卻和暖如春恰矩,著一層夾襖步出監(jiān)牢的瞬間记盒,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工外傅, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留孽鸡,地道東北人蹂午。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像彬碱,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子奥洼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

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