iPhone應(yīng)用開發(fā)實(shí)例介紹
iPhone應(yīng)用開發(fā)實(shí)例介紹是本文要介紹內(nèi)容,主要講解了字符處理、NavigationItem添加視圖、圖片等內(nèi)容。不多說,先來看詳細(xì)內(nèi)容。
用NSURLConnection Post上傳數(shù)據(jù)的特殊字符處理
用NSURLConnection Post上傳的時(shí)候發(fā)現(xiàn)一個(gè)特奇怪的問題,只要是+號都會替換成空格。例如"google+"就會變成"google ",代碼如下:
- NSString*bodyStr =@"google+";
- [urlRequestsetHTTPBody:[bodyStr dataUsingEncoding:NSUTF8StringEncoding]];
- //NSUTF8StringEncoding編碼是為了防止中文上傳的時(shí)候出錯(cuò)。
查些資料發(fā)現(xiàn)只要這些特殊符號在轉(zhuǎn)之前做一次UTF8編碼就可以解決這個(gè)問題了,代碼如下:
- NSString*bodyStr =@"google+";
- NSString*bStr =CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
- (CFStringRef)bodyStr,
- NULL,
- CFSTR(":/?#[]@!$&’()*+,;="),
- kCFStringEncodingUTF8);
- [urlRequest setHTTPBody:[bStr dataUsingEncoding:NSUTF8StringEncoding]];
- [bStr release];
NavigationItem 添加標(biāo)題視圖的方法
在 iOS 應(yīng)用開發(fā)中經(jīng)常會用到導(dǎo)航器,在導(dǎo)航器中添加標(biāo)題很簡單,語法如下:
- self.title=@"Elimination phase Day 1";
但是如果題目太長,后半部分就變成省略號了,那要實(shí)現(xiàn)自定義字體,代碼和效果如下:
- UILabel *titleText = [[UILabel alloc] initWithFrame: CGRectMake(0, 0, 200, 20)];
- titleText.backgroundColor = [UIColor clearColor];
- [titleText setFont:[UIFont systemFontOfSize:15.0]];
- [titleText setText:@"Elimination phase Day 1"];
- self.navigationItem.titleView=titleText;
- [titleText release];
還原iPhone應(yīng)用中png圖片的方法
Apple 對 iPhone 應(yīng)用程序中的 png 圖片進(jìn)行了特殊的處理,在 png 文件頭之后加了一個(gè)非標(biāo)準(zhǔn)的 CgBI 數(shù)據(jù)段,IDAT 段圖像數(shù)據(jù)也沒有傳統(tǒng)的壓縮數(shù)據(jù)頭和尾,并且紅色和藍(lán)色是反的,這樣就無法在 Mac 或 Windows 下不能正常使用了。
國外開發(fā)者已經(jīng)搞定了這一問題,先下載這個(gè)程序:http://acquisition.dreamhosters.com/iPhonePNG.zip,解壓后將 iPhonePNG 這個(gè)二進(jìn)制文件復(fù)制到 /Applications 目錄。假設(shè)你的圖片在./img目錄下,想轉(zhuǎn)換到 ./decode 目錄,在終端執(zhí)行:
- $ find ./img -name "*.png" -exec /Applications/iPhonePNG {} \;
默認(rèn)將轉(zhuǎn)換后的圖片添加后綴后放在原圖片相同目錄,把他批量移動出來:
- $ find ./img -name "*Decoded.png" -exec mv {} ./decode \;
小結(jié):iPhone應(yīng)用開發(fā)實(shí)例介紹的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對你有所幫助!