2013年5月29日 星期三

XCode Snippets

一直以為XCode是沒有提供Snippets的,
沒想到搜尋發現,錯很大啊!

這是Youtube搜尋到的教學,
沒想到竟然如此簡單啊!

另外紀錄一下Snippets存放的路經,
方便日後備份
~/Library/Developer/Xcode/UserData/CodeSnippets

PS:我XCode 版本是4.6.2,比較舊的版本路徑可能會有些不同要注意噢!

=== 補充 ===
補上自制Snippets Sync相關路徑,這是透過Dropbox的方式。
http://stackoverflow.com/questions/5261076/how-can-one-transfer-xcode-4-code-snippets-from-one-machine-to-another

2013年5月13日 星期一

Storyboard 入門文章整理

這邊將這兩週所閱讀的文章進行個簡單的整理,方便日後搜尋。

dismiss 與 present

畫面切換的method在iOS6.0之後有些許的調整,
目前在使用上是沒有問題的,就是換出現警告。

dismissViewControllerAnimated:completion: 取代 dismissModalViewControllerAnimated: presentViewController:animated:completion: 取代 presentModalViewController:animated:

Cell 使用不同的背景

之前工作上有個需求,希望第一跟最後一個Cell能加上陰影,
當時沒想出解決的方法。

今天看到下面這篇文章, 覺得這方式也不錯,或許是個方式,這邊記錄一下。
有機會再來試一下。

http://www.appcoda.com/ios-programming-customize-uitableview-storyboard
- (UIImage *)cellBackgroundForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSInteger rowCount = [self tableView:[self tableView] numberOfRowsInSection:0];
    NSInteger rowIndex = indexPath.row;
    UIImage *background = nil;
    
    if (rowIndex == 0) {
        background = [UIImage imageNamed:@"cell_top.png"];
    } else if (rowIndex == rowCount - 1) {
        background = [UIImage imageNamed:@"cell_bottom.png"];
    } else {
        background = [UIImage imageNamed:@"cell_middle.png"];
    }
    
    return background;
}

2013年5月7日 星期二

Storyboard 相關資訊及注意事項

Storyboard需iOS 5、XCode 4.2以上版本才開始支援。
  1. 其基礎為xib,增加其功能,與xib最明顯不同處在一個xib檔,僅代表一個screen,而一個strotyboard可包含多個screen。
  2. 一個專案中不限制只能有一個Storyboard檔案,可多個檔案並存,但若此取此方式,這可能就失去Storyboard其原有的意義了。
    但是,若同時支援iPhone與iPad,Storyboard需分別使用不同的Storyboard檔案,並在info.plist中進行相關設定。
  3. 採用Storyboard的專案除可使用Storyboard進行開發之外,也可同時使用xib進行開發
  4. 在view controller切換,除了以原先以model或是navigate controller push的方式之外,另外增加了以segue方式切換。
注意事項:
  1. 採取Storyboard多人協同開發,並進行版本控制時,與xib有想同的問題,若同時對同一檔案維護時,可能會發生衝突問題。
  2. 另外,在iOS 6與iPhone 5釋出時,為配合iPhone 5 4吋螢幕,Storyboard增加了Autolayout功能,但該功能限制要最低版本為iOS 6以上,若在iOS 5編譯時程式會直接crash。