使用UITableView展現數據

TableView主要用於展現數據,相似於Android中的ListView。html

咱們能夠經過兩個方式使用TableView。第一種是直接使用TableView類。第二種是經過UITableViewController類。xcode

 

第一種方式主要是經過實例化一個UITableView類,而後將類實例添加到主界面,代碼以下app

 

 

這樣,一個簡單的tableview就建立了,固然這個時候界面中是沒有數據的。spa

運行結果以下:code

 

 

 

接下來爲TableView添加數據。經過查看UITableView類的頭文件可知道,該類有一個dataSource屬性,屬性遵照了UITableViewDataSource協議。htm

所以,該屬性只接受類型爲UITableViewDataSource的值。在這裏咱們只須要令viewController遵照該協議便可,而後就能夠將dataSource屬性值設爲self。繼承

代碼以下:get

這個時候xcode會有一個黃色的感嘆號,由於咱們尚未實現協議裏面的方法。it

 

要爲TableView提供數據,咱們必須至少實現下面的兩個方法:io

    - (NSInteger)tableView:() numberOfRowsInSection:()UITableView *tableViewNSIntegersection
    - (UITableViewCell *)tableView:() cellForRowAtIndexPath:()UITableView *tableViewNSIndexPath *indexPath

 

第一個方法告訴TableView每一個section有多少行,第二個方法用於設置每一行的外觀(View)是怎樣的。TableView中每一行都是一個UITableViewCell類。

如今先把這兩個方法實現一下。代碼以下:

 

運行效果:

 

UITAbleViewDataSource中還有一個方法用來設置section,由於咱們沒有實現這個方法,因此section默認值是0。

該方法是:

    - (NSInteger)numberOfSectionsInTableView:()UITableView *tableView

 

經過實現這個方法修改section數量:

 

修改後運行效果:

 

使用UITableViewController建立Tableview

默認狀況下每一個視圖的控制器都是UIViewController,經過修改UIWindow類中的rootViewController屬性的值能夠改變這個行爲。

所以下面的代碼在appDelegate.m文件中的

    - (BOOL)application:() didFinishLaunchingWithOptions:()UIApplication *applicationNSDictionary *launchOptions

方法中進行。

 

首先建立一個繼承自UITableViewController的類。

 

類建立好後基本上就是在這個新建的類中實現上面的方法便可。由於UITableViewController類已經遵照了UITableViewDataSource協議。

並且UITableViewController裏面已經有TableView的屬性,所以咱們無需實例化UITableView。

 

MyTableViewController類中的代碼:

 

 

 

 

最後將rootViewController設置爲新創建的類:

 

運行結果:

相關文章
相關標籤/搜索