简单的数据实现了但这肯定不是我们所需求的样式,我们所需求的肯定是一种能满足我们审美的创建方式。
这时我们就需要单独去设置cell
的样式,哪该如何去设置呢?接下来就我个人经验来讲解下。
首先创建一个集成于UITableViewCell
的一个类文件
创建好之后可以先了解下该类有哪些属性和方法。
为了方便讲解我们就按下图的文字内容布局来讲解。
左边的头像
右上角的绿标
还有右下角的眼标
及信息标识
都看作是图片,那就可以用UIImageView
来布局实现。
定义四个UIImageView
类的属性分别来对应上面的图片。
1 | #import <UIKit/UIKit.h> |
而像标题``时间差信息``眼标信息``信息标识
显示的内容我们就用UILabel
1 | @property (nonatomic, strong) UILabel *labelA;//标题 |
在.m
文件中 先初始化
这些属性
1 | - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier |
然后添加到cell
的视图当中,注意cell
的视图用的是contentView
而非View
1 | [self.contentView addSubview:self.imageViewA]; |
之后就是设置每个属性视图在cell
中的frame和背景颜色方便观察 比如
1 | self.imageViewA.frame = CGRectMake(5, 5, 80, 80); |
cell
的布局设置好之后接下来就是怎么把它与UITableView
关联起来
回到ViewController.h
文件首先关联头文件
1 | #import "ViewController.h" |
接着在- (void)viewDidLoad
方法中修改注册cell
的信息,
把UITableViewCell
更改为上面引入头文件的文件名
我这里是TableViewCell
1 | [tableView registerClass:[TableViewCell class] forCellReuseIdentifier:@"cell"]; |
这样就相当于当前的tableview注册的是TableViewCell
的相关信息,会根据TableViewCell
的布局信息来设置cell
里的内容。
因为我们设置了新的UILabel
属性信息因此也必须使用设置的属性来显示内容。
1 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath |
运行
可以在ViewController.h
文件中通过下面的方法可以设置cell
的行高。
1 | - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath |