UITableView 的Stytle
UITableView
初始化时必须设置样式 Stytle
, 默认有两种方式plain
和 grouped
, 即无格式
和分组
, 苹果手机中的设置
app就是使用的grouped
样式
大体区别如下:
序号 |
选项 |
plain |
grouped |
1 |
背景色 |
白色 |
灰色 |
2 |
cell的分割线 |
在该分区中,只要不是最后一个, 都有分割线 |
在plain的基础上,在分区首尾也有分割线 |
3 |
分区的间隔 |
默认为0 |
默认为35 |
4 |
悬停效果 |
header 和 footer 都会有悬停效果 |
没有悬停效果 |
具体区别如下
1 背景色
背景色 |
plain |
grouped |
backgroundColor |
[UIColor whiteColor] |
[UIColor groupTableViewBackgroundColor] |
2 cell的分割线
plain
中的cell
,只要不是分区中的最后一个,都默认都有分割线,该分割线默认有缩进,与textLabel
左对齐
grouped
在plain
的基础上, 在分区首尾都添加了分割线, 该分割线没有缩进
Simulator Screen Shot - iPhone 7 - 2018-11-01 at 13.44.53.png
3 分区间隔
下面是仿写苹果手机中设置
->通用
下的列表,
1)不设置header
和 footer
的情况如下
分区间隔 |
plain |
grouped |
header 高度 |
未设置,默认为0 |
未设置,默认为17.5,如果是第一个分区, 则为35 |
footer 高度 |
未设置,默认为0 |
未设置,默认为17.5,如果是最后一个分区, 则为35 |
Simulator Screen Shot - iPhone 7 - 2018-11-01 at 11.11.24.png
2) 只设置 header
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return 30;
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
UIView *v = [UIView new];
v.backgroundColor = [UIColor yellowColor];
return v;
}
分区间隔 |
plain |
grouped |
header 高度 |
设为30, 即为30 |
设为30,即为30 |
footer 高度 |
未设置,默认为0 |
未设置,默认为17.5 , 如果是最后一个分区, 则为35
|
Simulator Screen Shot - iPhone 7 - 2018-11-01 at 13.53.27.png
3) 只设置 footer
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
return 20;
}
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
UIView *v = [UIView new];
v.backgroundColor = [UIColor purpleColor];
return v;
}
分区间隔 |
plain |
grouped |
header 高度 |
未设置,默认为0 |
未设置, 默认为17.5, 如果是第一个分区,则为35
|
footer 高度 |
设为20,即为20 |
设为20, 即为20 |
Simulator Screen Shot - iPhone 7 - 2018-11-01 at 13.56.51.png
4) 同时设置 header
和 footer
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return 30;
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
UIView *v = [UIView new];
v.backgroundColor = [UIColor yellowColor];
return v;
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
return 20;
}
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
UIView *v = [UIView new];
v.backgroundColor = [UIColor purpleColor];
return v;
}
分区间隔 |
plain |
grouped |
header 高度 |
未设置,默认为0 |
未设置, 默认为17.5, 如果是第一个分区,则为35
|
footer 高度 |
设为20,即为20 |
设为20, 即为20 |
Simulator Screen Shot - iPhone 7 - 2018-11-01 at 14.07.53.png
4 悬停效果
选项 |
plain |
grouped |
header |
有悬停效果 |
没有悬停效果 |
footer |
有悬停效果 |
没有悬停效果 |
aa.gif
网友评论