使用UITableView展示数据

TableView主要用于展示数据,类似于Android中的ListView。

我们可以通过两个方式使用TableView。第一种是直接使用TableView类。第二种是通过UITableViewController类。

 

第一种方式主要是通过实例化一个UITableView类,然后将类实例添加到主界面,代码如下

 

 

这样,一个简单的tableview就创建了,当然这个时候界面中是没有数据的。

运行结果如下:

 

 

 

接下来为TableView添加数据。通过查看UITableView类的头文件可知道,该类有一个dataSource属性,属性遵守了UITableViewDataSource协议。

因此,该属性只接受类型为UITableViewDataSource的值。在这里我们只需要令viewController遵守该协议即可,然后就可以将dataSource属性值设为self。

代码如下:

这个时候xcode会有一个黄色的感叹号,因为我们还没有实现协议里面的方法。

 

要为TableView提供数据,我们必须至少实现下面的两个方法:

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

 

第一个方法告诉TableView每个section有多少行,第二个方法用于设置每一行的外观(View)是怎样的。TableView中每一行都是一个UITableViewCell类。

现在先把这两个方法实现一下。代码如下:

 

运行效果:

 

UITAbleViewDataSource中还有一个方法用来设置section,因为我们没有实现这个方法,所以section默认值是0。

该方法是:

    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

 

通过实现这个方法修改section数量:

 

修改后运行效果:

 

使用UITableViewController创建Tableview

默认情况下每个视图的控制器都是UIViewController,通过修改UIWindow类中的rootViewController属性的值可以改变这个行为。

因此下面的代码在appDelegate.m文件中的

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

方法中进行。

 

首先创建一个继承自UITableViewController的类。

 

类创建好后基本上就是在这个新建的类中实现上面的方法即可。因为UITableViewController类已经遵守了UITableViewDataSource协议。

而且UITableViewController里面已经有TableView的属性,因此我们无需实例化UITableView。

 

MyTableViewController类中的代码:

 

 

 

 

最后将rootViewController设置为新建立的类:

 

运行结果:

 

 

 
 
posted @ 2015-06-06 23:02  破代码  阅读(1102)  评论(0编辑  收藏  举报