要做一個有UITableView的實驗Apps:
選擇Navigation-Based Application:
在Resources內,已經預設了個RootViewController.xib內有個UITableView。當然,沒有的話你可以自己在Interface Builder內加入UITableView。
值得留意是numberOfRowsInSection這個方法:
它的return type是NSInteger,即是一個Section內有幾多個橫項。
另一個焦點是cellForRowAtIndexPath方法的實作:
每當個UITableView要顯示一個cell時,個方法都會被call一次,目的是拿取某個cell的資料或對cell的visual customization。
同時,你可見到code內的CellIndentifier,用途是重用已被配置的cell resources。這可提升使用效能。因為當cell數目太多時,每alloc一個cell,記憶體就用多了...而且,iPhone的screen size有限(跟desktop比),同一時間show晒cell的機會好少。
另外,indexPath是代表你正處理那一個cell的資料,即indexPath.row。你可看看row的數值是什麼,例如第一個row是0,第二個是1等等...
當某某cell被按下時,我們要跳去另一畫面,又怎handle?請參考didSelectRowAtIndexPath。
跟cellForRowAtIndexPath原理相同,indexPath代表第幾個cell被select了,都可以由indexPath.row內找到,由0到n-1個cell。如果現在的view controller係under另一個navigation controller,你可以直接把新的view controller加到現有的navigation controller。此外,你亦可使用presentModalViewController等方法顯現新的view controller。
沒有留言:
張貼留言