UITableView 的Stytle

UITableView 的Stytle

UITableView 初始化时必须设置样式 Stytle, 默认有两种方式plaingrouped, 即无格式分组, 苹果手机中的设置app就是使用的grouped样式

大体区别如下:

序号 选项 plain grouped
1 背景色 白色 灰色
2 cell的分割线 在该分区中,只要不是最后一个, 都有分割线 在plain的基础上,在分区首尾也有分割线
3 分区的间隔 默认为0 默认为35
4 悬停效果 headerfooter 都会有悬停效果 没有悬停效果

具体区别如下

1 背景色

背景色 plain grouped
backgroundColor [UIColor whiteColor] [UIColor groupTableViewBackgroundColor]

2 cell的分割线

plain中的cell,只要不是分区中的最后一个,都默认都有分割线,该分割线默认有缩进,与textLabel左对齐

groupedplain的基础上, 在分区首尾都添加了分割线, 该分割线没有缩进

Simulator Screen Shot - iPhone 7 - 2018-11-01 at 13.44.53.png

3 分区间隔

下面是仿写苹果手机中设置->通用下的列表,

1)不设置headerfooter的情况如下

分区间隔 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) 同时设置 headerfooter

- (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

你可能感兴趣的:(UITableView 的Stytle)