iOS 開發(fā)常用小技巧

1.修改UILable的文本行間距

NSMutableAttributedString *attributedString =

[[NSMutableAttributedString alloc] initWithString:self.contentLabel.text];

NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];

[paragraphStyle setLineSpacing:3];

//調(diào)整行間距

[attributedString addAttribute:NSParagraphStyleAttributeName

value:paragraphStyle

range:NSMakeRange(0, [self.contentLabel.text length])];

self.contentLabel.attributedText = attributedString;


2.NSString 過濾特殊字符

// 定義一個特殊字符的集合

NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:

@"@/:庙曙;()¥「」"、[]{}#%-*+=_\|~<>$€^?'@#$%^&*()_+'""];

// 過濾字符串的特殊字符

NSString *newString = [trimString stringByTrimmingCharactersInSet:set];


3.讓 iOS 應(yīng)用直接退出

- (void)exitApplication {

AppDelegate *app = [UIApplication sharedApplication].delegate;

UIWindow *window = app.window;

[UIView animateWithDuration:1.0f animations:^{

window.alpha = 0;

} completion:^(BOOL finished) {

exit(0);

}];

}


4.NSArray 快速求總和 最大值 最小值 和 平均值

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(@"%fn%fn%fn%f",sum,avg,max,min);


5.修改 Label 中不同文字顏色

[self editStringColor:self.label.text editStr:@"好" color:[UIColor blueColor]];


- (void)editStringColor:(NSString *)string editStr:(NSString *)editStr color:(UIColor *)color {

// string 為整體字符串, editStr 為需要修改的字符串

NSRange range = [string rangeOfString:editStr];

NSMutableAttributedString *attribute = [[NSMutableAttributedString alloc] initWithString:string];

// 設(shè)置屬性修改字體顏色 UIColor 與大小 UIFont

[attribute addAttributes:@{NSForegroundColorAttributeName:color} range:range];

self.label.attributedText = attribute;

}


6.修改 Tabbar Item 的屬性

// 修改標題位置

self.tabBarItem.titlePositionAdjustment = UIOffsetMake(0, -10);

// 修改圖片位置

self.tabBarItem.imageInsets = UIEdgeInsetsMake(-3, 0, 3, 0);

// 批量修改屬性

for (UIBarItem *item in self.tabBarController.tabBar.items) {

[item setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:

[UIFont fontWithName:@"Helvetica" size:19.0], NSFontAttributeName, nil]

forState:UIControlStateNormal];

}

// 設(shè)置選中和未選中字體顏色

[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];

// 未選中字體顏色

[[UITabBarItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor greenColor]} forState:UIControlStateNormal];

// 選中字體顏色

[[UITabBarItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor cyanColor]} forState:UIControlStateSelected];


7.修改 UITextField 中 Placeholder 的文字顏色和大小

[text setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"];

[text setValue:[UIFont boldSystemFontOfSize:16] forKeyPath:@"_placeholderLabel.font"];


8.判斷 view 是不是指定視圖的子視圖

BOOL isView =? [textView isDescendantOfView:self.view];


9.設(shè)置狀態(tài)欄背景為任意的顏色


- (void)setStatusColor

{

UIView *statusBarView = [[UIView alloc] initWithFrame:CGRectMake(0, 0,[UIScreen mainScreen].bounds.size.width, 20)];

statusBarView.backgroundColor = [UIColor orangeColor];

[self.view addSubview:statusBarView];

}


10.去除字符串中所有的空格

[str stringByReplacingOccurrencesOfString:@" " withString:@""]



11.修改tableViewCell選中狀態(tài)的顏色

cell.selectedBackgroundView = [[UIView alloc] initWithFrame:cell.frame];

cell.selectedBackgroundView.backgroundColor = [UIColor whiteColor];


12.關(guān)于右劃返回上一級

自定義leftBarButtonItem后無法啟用系統(tǒng)自帶的右劃返回可以再設(shè)置以下代碼

self.navigationController.interactivePopGestureRecognizer.delegate = self;


13.去掉導(dǎo)航欄下邊的黑線

[self.navigationController.navigationBar setShadowImage:[UIImage new]];//用于去除導(dǎo)航欄的底線黍析,也就是周圍的邊線

14.去掉UITableView的section的粘性帅刀,使其不會懸停框都。

//有時候使用UITableView所實現(xiàn)的列表,會使用到section,但是又不希望它粘在最頂上而是跟隨滾動而消失或者出現(xiàn)

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {

if (scrollView == _tableView) {

CGFloat sectionHeaderHeight = 36;

if (scrollView.contentOffset.y <= sectionHeaderHeight && scrollView.contentOffset.y >=

0) {

scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);

} else if (scrollView.contentOffset.y >= sectionHeaderHeight) {

scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);

}

}

}


15.常見bug的調(diào)試方法 ?http://blog.csdn.net/yst19910702/article/details/51576562


16.一段代碼執(zhí)行的時間

#define TICK NSDate *startTime = [NSDate date]

#define TOCK NSLog(@"Time: %f", -[startTime timeIntervalSinceNow])


17.NSLog的處理方式


// 保證 #ifdef 中的宏定義只會在 OC 的代碼中被引用

// 否則,一旦引入 C/C++ 的代碼或者框架战秋,就會出錯!

#ifdef __OBJC__

#ifdef DEBUG

#define NSLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)

#else

#define NSLog(...)

#endif

#endif

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末讨韭,一起剝皮案震驚了整個濱河市脂信,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌透硝,老刑警劉巖狰闪,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異濒生,居然都是意外死亡,警方通過查閱死者的電腦和手機甜攀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進店門秋泄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人规阀,你說我怎么就攤上這事恒序。” “怎么了谁撼?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵歧胁,是天一觀的道長。 經(jīng)常有香客問我厉碟,道長喊巍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任箍鼓,我火速辦了婚禮崭参,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘款咖。我一直安慰自己何暮,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布铐殃。 她就那樣靜靜地躺著海洼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪富腊。 梳的紋絲不亂的頭發(fā)上坏逢,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天,我揣著相機與錄音赘被,去河邊找鬼是整。 笑死,一個胖子當(dāng)著我的面吹牛民假,可吹牛的內(nèi)容都是我干的贰盗。 我是一名探鬼主播,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼阳欲,長吁一口氣:“原來是場噩夢啊……” “哼舵盈!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起球化,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤秽晚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后筒愚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赴蝇,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年巢掺,在試婚紗的時候發(fā)現(xiàn)自己被綠了句伶。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片劲蜻。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖考余,靈堂內(nèi)的尸體忽然破棺而出先嬉,到底是詐尸還是另有隱情,我是刑警寧澤楚堤,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布疫蔓,位于F島的核電站,受9級特大地震影響身冬,放射性物質(zhì)發(fā)生泄漏衅胀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一酥筝、第九天 我趴在偏房一處隱蔽的房頂上張望滚躯。 院中可真熱鬧,春花似錦嘿歌、人聲如沸哀九。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽阅束。三九已至,卻和暖如春茄唐,著一層夾襖步出監(jiān)牢的瞬間息裸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工沪编, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留呼盆,地道東北人。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓蚁廓,卻偏偏與公主長得像访圃,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子相嵌,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,047評論 2 355

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

  • 打印View所有子視圖 layoutSubviews調(diào)用的調(diào)用時機 當(dāng)視圖第一次顯示的時候會被調(diào)用當(dāng)這個視圖顯示到...
    hyeeyh閱讀 513評論 0 3
  • 1. 打印View所有子視圖 po [[self view]recursiveDescription] 2. la...
    Hurricane_4283閱讀 968評論 0 2
  • 原文 在這里總結(jié)一些iOS開發(fā)中的小技巧腿时,能大大方便我們的開發(fā),持續(xù)更新饭宾。 1.UITableView的Group...
    無灃閱讀 779評論 0 2
  • 2017.9.25星期一晴 今天回來又批評了張迪批糟,她毛病太多,作業(yè)沒學(xué)完看铆,而且字沒有以前好了徽鼎!日記日期老錯,我說了...
    張萌張迪媽媽閱讀 215評論 0 0
  • 時光搖啊搖 是不是搖到了外婆橋 又聽到那聲久違的寶貝 時光搖啊搖 是不是搖到了外公灣 又坐在了舒服的自行車后 時光...
    洛之亦閱讀 360評論 2 3