一、简单介绍
UITableView是一个表视图,也是手机软件中用到最多的控件,可以说基本每个APP都会用到它。例如QQ、微信的好友列表,美团淘宝的商品展示等等都是用到tableView。
UITableView继承自UIScrollView,因此支持垂直滚动,⽽且性能极佳。所以在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView
二、实现数据展示的方法
UITableView需要⼀一个数据源(dataSource)来显示数据
UITableView会向数据源查询一共有多少行数据以及每⼀行显示什么数据等
没有设置数据源的UITableView只是个空壳
凡是遵守UITableViewDataSource协议的OC对象,都可以是UITableView的数据源
因此凡是要使用tableView的视图都需要遵守UITableViewDataSource协议,当然你需要对tableView做更多的设置的时候还要遵守UITableViewDelegate协议
其中实现的一些重要方法
#pragma mark --设置一共有多少组数据
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
#pragma mark --设置每一组有多少行数据
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
#pragma mark --设置每一行显示什么内容
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
三、简单的代码展示
效果展示
当然现在只是为了简单展示写的代码,在开发中是没有人会这样写的,数据源会单独的拿出来处理。另外写一个数据模型的类来处理数据源,不要问我为什么,当你将数据源和表视图在同一个地方处理你就会知道单独处理数据源的好处了。
最后再说一下UITableViewCell,UITableViewCell自带一个contentView,而contentView默认有三个控件在上面,但是你不设置这些控件它是不会加载的,因为它是属于懒加载,你用的时候才会加载,你不用就永远不会加载。
这种写法也会加快程序的运行速度,让程序运行更流畅
下面写一个懒加载的列子:
@property (nonatomic, strong) NSMutableArray *nameArray;
- (NSMutableArray *)nameArray{
if (!_nameArray) {
_nameArray = [NSMutableArray array];
}
return _nameArray;
}