轉載:http://www.cnblogs.com/liufan9/archive/2012/06/01/2528714.html
在很多iOS應用中都有UITableView控制項的身影。讓我們的系列教程也從UITableView開始吧。
目標
任何一個偉大的iOS應用都源自一個偉大的構想。雖然我們只是再做演練,但演練也同樣需要一個偉大的構想!這樣我們會產生更加濃烈的興趣,目標更加明確,同時不會糾結於具體的細節之中。
提示:細節是在不斷重複中逐漸掌握的,過早的進入細節很容易讓人迷失方向。
現在用微博的人越來越多,假設我們需要一個管理“微博關注人”的列表這麼一個應用,能夠協助我維護微博關注人的資訊。怎麼樣?對於一個iOS初學者,這麼一個假設應該已經足夠大了吧。:]
那麼我們就開始動手吧。 一. 建立應用
建立應用的方法,可以參見前兩天寫的:第一個iOS應用——Hello world!,在此不再累述,建立應用時用“My Focus”做為產品名稱。如所示:
二. 增加表格控制項
1. 開啟“MainStoryboard.storyboard”檔案;
2. 因為要做一個表格應用,而預設的Storyboard是一個視圖應用,先點擊“View Controller”,把它刪除,如所示:
刪除之後,我們會發現一片空白,如所示:
3. 添加表格視圖控制項——從右側的“工具地區”找到Table View Controller控制項,拖到StoryBoard的空白地區放手;
4. 點擊“Table View Controller”左側的摺疊標記依次展開選中“Table View Cell”,然後在屬性區的“Identifier”輸入:“userInfoCell”,如所示:
OK,我們運行一下,看看剛才比划了這幾下實現了哪些效果:
一個空的表格躍然螢幕之上,而且試著用手拽拽,表格都會隨著手勢上下滾動了。到目前為止,我們還沒有寫一句代碼,不錯吧。:]
三. 編碼前的準備
在寫程式之前,我們需要做一些簡單的準備工作。
要寫代碼,需要有寫的“位置”,在iOS開發中,大多情況能夠“寫”的位置有兩個。
1. “.h”檔案——標頭檔,用於聲明對象的屬性,方法等;
2. “.m”檔案——對象實現檔案,用於對象的具體實現。
好,我們先記住這兩個,其他用不到的,我們不妨先假設我們已經會了,這樣我們會有一個強大的內心,專註去做現在要做的事情。:]
讓我們簡單回想一下第二部分中,我們做的事情:開啟“MainStoryboard”->刪除了預設的“View Controller”->增加一個“Table View Controller”,因為我們要做的是一個表格應用。
既然要做的是一個表格應用,那麼我們需要一個表格的實現對象,先看下導航地區的內容,如:
可以看到兩個檔案,從名字上看,一個是View Controller的標頭檔,一個是View Controller的實現檔案,這兩個檔案顯然也不是我們需要的,刪除掉!
接下來按照以下步驟操作:
1. 在GUI上點滑鼠右鍵,在快顯功能表中選擇“New File...”,在快顯視窗中選擇“Cocoa Touch”“Objective-C class”,點擊“Next”按鈕,見:
2. 在下一個的視窗中,在“Class”中輸入“JOYTableViewController”,“Subclass of”中通過下拉式清單選擇或者輸入“UITableViewController”,同時不要選擇下面兩個複選框,然後點擊“Next”,見:
3. 在下一個視窗,直接點擊“Create”按鈕建立對象。現在的導航地區應該如顯示:
通過以上三步操作,Xcode協助我們準備好了標頭檔和實現檔案。
在寫代碼之前,還需要做一件非常重要的事情——告訴Storyboard,它的要用按照新增加對象中的代碼執行動作。
1. 開啟“MainStoryboard.storyboard”;
2. 點擊選中“Table View Controller”;
3. 點擊工具地區的“Show the Identity Inspector”按鈕,顯示“標示檢查器”;
4. 在“Class”中,點擊下拉按鈕,選擇我們剛剛建立的類“JOYTableViewController”。
見:
好,通過簡單的幾步準備,接下來我們要進入具體的實做階段,激動嗎?:]
四. 通過代碼填充表格
點擊“導航地區”的“JOYTableViewController.m”開啟它。
說明:本次演練中,所有的編碼都只在這一個檔案中。
小技巧:此時你按一下option + command + 0這個按鍵組合,可以關閉“工具地區”這樣可以使“編輯地區”看起來更大些。
代碼開始部分有一個 @interface JOYTableViewController,我們可以把對象的私人屬性和方法在此定義,而不必在 .h 檔案中進行定義,這個特性可以保證你開放的介面更加的清晰簡潔。
1. 定義一個數組,用於存放顯示關注人資訊,代碼如下:
1 @interface JOYTableViewController () {2 @private3 NSArray *_userList;4 }5 6 @end
提示:不要忘記大括弧啊。
2. 填充數組內容,找到viewDidLoad方法,在方法的末尾添加一句:
1 _userList = [[NSArray alloc]initWithObjects:@"愛Apps", @"蘋果匯", @"數位iPhone大百科",2 @"新浪視野", @"李開複", nil];
假設我只關注了這五個人。
3. 修改表格區段數,找到numberOfSectionsInTableView方法,將其中的“return 0”,改為“return 1”,如下所示:
1 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView2 {3 return 1;4 }
有關區段的內容,會在下一篇文章中闡述,現在我們假設表格只有一個區段。
4. 修改表格行數,找到
1 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
方法,將其中的return 0,改為:
1 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section2 {3 return [_userList count];4 }
說明:這句話的意思是“返回 [使用者列表 數量]”,Objective-C的文法有點像自然語言,大家先記住以往我們熟悉的“.”被現在的“空格”和“中括弧”替代了。
預告:計劃在TableView的演練專題結束後,寫一篇介紹Objective-C的基礎文法,盡請期待。:]
5. 在儲存格中依次顯示數組內容,找到
1 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
方法,在最後的“return cell”語句前添加如下代碼:
1 // 執行個體化儲存格對象2 if (cell == nil) {3 cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];4 }5 6 // 設定儲存格文本7 [cell.textLabel setText:[_userList objectAtIndex:[indexPath row]]];
6. 運行看看效果,見:]
五. 小結
本次演練我們先暫時告一段落,到目前為止,我們已經建立了一個最簡單的表格應用。雖然看起來還很粗糙,但是我們已經邁出了堅實的一步。:]
本演練來源程式:JoyiOSMyFocus1.zip
下一篇文章我們會演練如何通過資料檔案載入表格內容,同時在表格中顯示圖片等內容。敬請期待。:]