ios技巧覆山,功能記錄

返回輸入鍵盤

<UITextFieldDelegate>
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder]; return YES;
}

CGRect

CGRectFromString(<#NSString *string#>)//有字符串恢復(fù)出矩形
CGRectInset(<#CGRect rect#>, <#CGFloat dx#>, <#CGFloat dy#>)//創(chuàng)建較小或者較大的矩形
CGRectIntersectsRect(<#CGRect rect1#>, <#CGRect rect2#>)//判斷兩巨星是否交叉疾瓮,是否重疊
CGRectZero//高度和寬度為零的,位于(0团秽,0)的矩形常量

隱藏狀態(tài)欄

[UIApplication sharedApplication] setStatusBarHidden:<#(BOOL)#> withAnimation:<#(UIStatusBarAnimation)#>//隱藏狀態(tài)欄

自動適應(yīng)父視圖大小

self.view.autoresizesSubviews = YES;
self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

UITableView的一些方法

縮進級別設(shè)置為行號澎剥,row越大,縮進越多
<UITableViewDelegate>
- (NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath {
       NSInteger row = indexPath.row; return row;
}

plist文件操作

把plist文件中的數(shù)據(jù)賦給數(shù)組
NSString *path = [[NSBundle mainBundle] pathForResource:@"States" ofType:@"plist"];
NSArray *array = [NSArray arrayWithContentsOfFile:path];
從plist中獲取數(shù)據(jù)賦給字典

NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"book" ofType:@"plist"];
NSDictionary *dictionary = [NSDictionary dictionaryWithContentsOfFile:plistPath];

獲取觸摸的點

- (CGPoint)locationInView:(UIView *)view;
- (CGPoint)previousLocationInView:(UIView *)view;

獲取觸摸的屬性

@property(nonatomic,readonly) NSTimeInterval timestamp;
@property(nonatomic,readonly) UITouchPhase phase;
@property(nonatomic,readonly) NSUInteger tapCount;

NSUserDefaults注意事項

設(shè)置完了以后如果存儲的東西比較重要的話谋梭,一定要同步一下
[[NSUserDefaults standardUserDefaults] synchronize];

獲取Documents目錄

NSString *documentsDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];

獲取tmp目錄

NSString *tmpPath = NSTemporaryDirectory();

利用Safari打開一個鏈接

NSURL *url = [NSURL URLWithString:@"http://baidu.com"];
[[UIApplication sharedApplication] openURL:url];

利用UIWebView顯示pdf文件信峻,網(wǎng)頁等等

<UIWebViewDelegate>
UIWebView *webView = [[UIWebView alloc]initWithFrame:self.view.bounds];
webView.delegate = self;webView.scalesPageToFit = YES;
webView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[webView setAllowsInlineMediaPlayback:YES];
[self.view addSubview:webView];
NSString *pdfPath = [[NSBundle mainBundle] pathForResource:@"book" ofType:@"pdf"];
NSURL *url = [NSURL fileURLWithPath:pdfPath];
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:(NSURLRequestUseProtocolCachePolicy) timeoutInterval:5];
[webView loadRequest:request];

UIWebView和html的簡單交互

myWebView = [[UIWebView alloc]initWithFrame:self.view.bounds];
[myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]]];
NSError *error;
NSString *errorString = [NSString stringWithFormat:@"<html><center><font size=+5 color='red'>AnError Occurred;<br>%@</font></center></html>",error];
[myWebView loadHTMLString:errorString baseURL:nil];
//頁面跳轉(zhuǎn)了以后,停止載入
-(void)viewWillDisappear:(BOOL)animated { 
      if (myWebView.isLoading) {
          [myWebView stopLoading];
      } 
      myWebView.delegate = nil;
      [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}

漢字轉(zhuǎn)碼

NSString *oriString = @"\u67aa\u738b";
NSString *escapedString = [oriString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

處理鍵盤通知

先注冊通知瓮床,然后實現(xiàn)具體當(dāng)鍵盤彈出來要做什么盹舞,鍵盤收起來要做什么
- (void)registerForKeyboardNotifications { 
    keyboardShown = NO;//標(biāo)記當(dāng)前鍵盤是沒有顯示的
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasShown:) name:UIKeyboardWillShowNotification object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasHidden:) name:UIKeyboardDidHideNotification object:nil];
}

//鍵盤顯示要做什么
- (void)keyboardWasShown:(NSNotification *)notification { 
    if (keyboardShown) { 
        return; 
    } 
    NSDictionary *info = [notification userInfo]; 

    NSValue *aValue = [info objectForKey:UIKeyboardFrameBeginUserInfoKey]; 
    CGSize keyboardSize = [aValue CGRectValue].size; 
    CGRect viewFrame = scrollView.frame; 
    viewFrame.size.height = keyboardSize.height; 

    CGRect textFieldRect = activeField.frame; 
    [scrollView scrollRectToVisible:textFieldRect animated:YES]; 
    keyboardShown = YES;
}


- (void)keyboardWasHidden:(NSNotification *)notification { 
    NSDictionary *info = [notification userInfo]; 
    NSValue *aValue = [info objectForKey:UIKeyboardFrameEndUserInfoKey]; 
    CGSize keyboardSize = [aValue CGRectValue].size; 
    
    CGRect viewFrame = scrollView.frame; 
    viewFrame.size.height += keyboardSize.height; 
    scrollView.frame = viewFrame; 
    
    keyboardShown = NO;
}

點擊鍵盤的next按鈕产镐,在不同的textField之間換行

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    if ([textField returnKeyType] != UIReturnKeyDone) { 
        NSInteger nextTag = [textField tag] + 1; 
        UIView *nextTextField = [self.tableView viewWithTag:nextTag]; 
        [nextTextField becomeFirstResponder]; 
    }else { 
        [textField resignFirstResponder]; 
    } 
   return YES;
}

設(shè)置日期格式

dateFormatter = [[NSDateFormatter alloc]init];
dateFormatter.locale = [NSLocale currentLocale];
dateFormatter.calendar = [NSCalendar autoupdatingCurrentCalendar];
dateFormatter.timeZone = [NSTimeZone defaultTimeZone];
dateFormatter.dateStyle = NSDateFormatterShortStyle;
NSLog(@"%@",[dateFormatter stringFromDate:[NSDate date]]);

加載大量圖片的時候,可以使用


NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"icon" ofType:@"png"];
UIImage *myImage = [UIImage imageWithContentsOfFile:imagePath];

有時候在iPhone游戲中踢步,既要播放背景音樂癣亚,同時又要播放比如槍的開火音效。

NSString *musicFilePath = [[NSBundle mainBundle] pathForResource:@"xx" ofType:@"wav"];
NSURL *musicURL = [NSURL fileURLWithPath:musicFilePath];
AVAudioPlayer *musicPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:musicURL error:nil];
[musicPlayer prepareToPlay];
musicPlayer.volume = 1;
musicPlayer.numberOfLoops = -1;//-1表示一直循環(huán)

從通訊錄中讀取電話號碼获印,去掉數(shù)字之間的-

NSString *originalString = @"(123)123123abc";
NSMutableString *strippedString = [NSMutableString stringWithCapacity:originalString.length];
NSScanner *scanner = [NSScanner scannerWithString:originalString];
NSCharacterSet *numbers = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];   

while ([scanner isAtEnd] == NO) {        
      NSString *buffer;        
      if ([scanner scanCharactersFromSet:numbers intoString:&buffer]) {            
          [strippedString appendString:buffer];        
      }else {            
          scanner.scanLocation = [scanner scanLocation] + 1;        
      }    
}    
NSLog(@"%@",strippedString);


字符串是否為空

- (BOOL) isBlankString:(NSString *)string { 
    if (string == nil || string == NULL) { 
        return YES; 
    } 
    if ([string isKindOfClass:[NSNull class]]) { 
        return YES; 
    } 
    if ([[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length]==0){
       return YES; 
    } 
    return NO;
}

正則判斷:字符串只包含字母和數(shù)字

NSString *myString = @"Letter1234";
NSString *regex = @"[a-z][A-Z][0-9]";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];    
if ([predicate evaluateWithObject:myString]) {        
    //implement    
}

設(shè)置UITableView的滾動條顏色

self.tableView.indicatorStyle = UIScrollViewIndicatorStyleWhite;

網(wǎng)絡(luò)編程 開發(fā)web等網(wǎng)絡(luò)應(yīng)用程序的時候述雾,需要確認(rèn)網(wǎng)絡(luò)環(huán)境,連接情況等信息兼丰。如果沒有處理它們玻孟,是不會通過apple的審查的。 系統(tǒng)自帶的網(wǎng)絡(luò)檢查是原生的鳍征,AFNetworking也為我們添加了相關(guān)檢測機制黍翎,所以這個直接在介紹AFNetworking的時候詳解吧。

使用NSURLConnection下載數(shù)據(jù)

1. 創(chuàng)建對象
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]];
[NSURLConnection connectionWithRequest:request delegate:self];

2. NSURLConnection delegate 委托方法
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {    
}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {    
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {    
}


3. 實現(xiàn)委托方法
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
     self.receiveData.length = 0;//先清空數(shù)據(jù)
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    [self.receiveData appendData:data];
}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
    //錯誤處理
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {    
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;    
    NSString *returnString = [[NSString alloc]initWithData:self.receiveData encoding:NSUTF8StringEncoding];    
    firstTimeDownloaded = YES;
}

隱藏狀態(tài)欄

[UIApplication sharedApplication].statusBarHidden = YES;

.m文件與.mm文件的區(qū)別

.m文件是objective-c文件
.mm文件相當(dāng)于c++或者c文件

Safari其實沒有把內(nèi)存的緩存寫到存儲卡上

讀取一般性文件

- (void)readFromTXT {    
    NSString *tmp;    
    NSArray *lines;//將文件轉(zhuǎn)化為一行一行的    
    lines = [[NSString stringWithContentsOfFile:@"testFileReadLines.txt"] componentsSeparatedByString:@"\n"];        
    
    NSEnumerator *nse = [lines objectEnumerator];        

    //讀取<>里的內(nèi)容    
    while (tmp == [nse nextObject]) {        
        NSString *stringBetweenBrackets = nil;        
        NSScanner *scanner = [NSScanner scannerWithString:tmp];        
        [scanner scanUpToString:@"<" intoString:nil];        
        [scanner scanString:@"<" intoString:nil];        
        [scanner scanUpToString:@">" intoString:&stringBetweenBrackets];        
        NSLog(@"%@",[stringBetweenBrackets description]);    
    }
}

隱藏UINavigationBar

 [self.navigationController setNavigationBarHidden:YES animated:YES];

調(diào)用電話艳丛,短信匣掸,郵件


[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto:apple@mac.com?Subject=hello"]];
sms://調(diào)用短信
tel://調(diào)用電話
itms://打開MobileStore.app

獲取版本信息

UIDevice *myDevice = [UIDevice currentDevice];
NSString *systemVersion = myDevice.systemVersion;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市氮双,隨后出現(xiàn)的幾起案子碰酝,更是在濱河造成了極大的恐慌,老刑警劉巖眶蕉,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件砰粹,死亡現(xiàn)場離奇詭異,居然都是意外死亡造挽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門弄痹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來饭入,“玉大人,你說我怎么就攤上這事肛真⌒扯” “怎么了?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵蚓让,是天一觀的道長乾忱。 經(jīng)常有香客問我,道長历极,這世上最難降的妖魔是什么窄瘟? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮趟卸,結(jié)果婚禮上蹄葱,老公的妹妹穿的比我還像新娘氏义。我一直安慰自己,他們只是感情好图云,可當(dāng)我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布惯悠。 她就那樣靜靜地躺著,像睡著了一般竣况。 火紅的嫁衣襯著肌膚如雪克婶。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天丹泉,我揣著相機與錄音情萤,去河邊找鬼。 笑死嘀掸,一個胖子當(dāng)著我的面吹牛紫岩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播睬塌,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼泉蝌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了揩晴?” 一聲冷哼從身側(cè)響起勋陪,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎硫兰,沒想到半個月后诅愚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡劫映,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年违孝,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泳赋。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡雌桑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出祖今,到底是詐尸還是另有隱情校坑,我是刑警寧澤,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布千诬,位于F島的核電站耍目,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏徐绑。R本人自食惡果不足惜邪驮,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望泵三。 院中可真熱鬧耕捞,春花似錦衔掸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至磷斧,卻和暖如春振愿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背弛饭。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工冕末, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人侣颂。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓档桃,卻偏偏與公主長得像,于是被迫代替她去往敵國和親憔晒。 傳聞我的和親對象是個殘疾皇子藻肄,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,724評論 2 351

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

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,093評論 1 32
  • 風(fēng)雨清秋滌洗,桂菊競獻馨香拒担。雞鳴夜半欲折腸嘹屯,鏡月偏懸天上。 桑梓風(fēng)俗依舊从撼,山清水綠情長州弟。夢回爭坐話離傷,笑問客何去向低零。
    晴鶴1閱讀 281評論 0 1
  • 17年來了,你敢不敢也制定一個小目標(biāo)气堕? 一、王健林口中的小目標(biāo) 2016年新一代網(wǎng)紅畔咧,萬達董事長王健林茎芭,王思聰?shù)陌?..
    沁蔓爬藤閱讀 291評論 0 2
  • 朱元璋原本家里窮,沒有機會進學(xué)校門誓沸,所以當(dāng)他來到皇覺寺出家時梅桩,基本上是目不識丁的文盲。后來就去要飯了拜隧,斷斷續(xù)續(xù)要飯...
    一夕厘閱讀 1,005評論 0 13
  • ReactNative 大圖手勢瀏覽技術(shù)分析[原創(chuàng)] 摘要 支持通用的手勢縮放宿百,手勢跟隨趁仙,多圖翻頁作者 黃子毅推...
    imiller閱讀 441評論 0 2