這次是結合一堆學過的view controller和提供的抓flickr資料程式碼,即時透過flickr API抓flickr上的東西show出來。
一開始卡住的地方是整個view hierarchy,整個架構是tab bar->navigation*2->table->scroll->image,一直以為毎個view可以用多大的空間是在push進去時候會自動算的,但是後來發現好像不是。所以一開始有一堆空白沒有畫滿,或是圖片蓋到狀態列或是功能列的問題。跑去看了apple的view programming guide和view controller programming guide,看完了還是問題多多。自己隨便亂改,沒想到又ok了!?怎麼ok的都不知道??
不過也不是事情都這麼完美,在想要一點開圖片就自動fit到可用大小的時候,因為不知道原本是怎麼搞定的,所以不知道到底要讓圖片去fit哪一個frame大小,這個功能就做不出來了。
另外一個卡住的地方是動態刪除看過的歷史紀錄,tableViewController裡有提供模版
// Override to support editing the table view. - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { if (editingStyle == UITableViewCellEditingStyleDelete) { // Delete the row from the data source. [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; } }
要在[tableView deleteRowAtIndexPaths:...]那行前面把實際指到的資料部分刪掉,再呼叫模版提供的那行做table view動畫特效。要是反過來做或是沒有寫的話會當...
在算section header有許多要算同種東西有幾個的問題,以前用c開陣列寫都很ok,現在都是用一堆NSMutableArray,NSMutableDictionary去做,又臭又長,應該有比較好的寫法,但是不知道怎麼寫。
Object C的排序很方便,可以指定一堆排序方式,通通放進一個陣列裡。API會自根據第一個排序方法排好,平手的再用第二種排法,以此類推。
Object C的predicate是個類似regex的東西,可以一次對陣列篩選出符合條件的東西,但是說明文件寫的很難看懂。
這次還有遇到困擾我許久的問題,有時候用程式碼去建gui,有些controller或view就沒有寫單獨的檔案出來。有時候要加某些功能到controller或view,就沒有檔案可以加。不知道是不是就只有多寫出來一組檔案這種解法?
抓圖:
可以看到現在flickr上最熱門的地點,然後再去查個別地點有什麼相片,然後再看特定的相片。flickr API都用json把資料包好了,Object C中就是NSArray of NSDictionary。以前用Python有玩過plurk API,可是不知道要寫什麼就算了 XD


這時候就發現iOS原生支援unicode的好處,不管是中文日文俄文法文都可以正常顯示...



2 則留言:
我rotate完後tableview的size是錯的 改怎麼辦?
就像我上面說的,怎麼ok的都不知道。
我整個程式碼都沒有去設定過frame,為什麼轉之後size不會有問題我也不知道
張貼留言