IOS-使用 UITableView 建立表格應用演練(1)——一個簡單的表格應用-V3.0

來源:互聯網
上載者:User

轉載: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

下一篇文章我們會演練如何通過資料檔案載入表格內容,同時在表格中顯示圖片等內容。敬請期待。:]

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.