写点什么

iOS tableView 添加 group 分组

作者:刿刀
  • 2023-02-17
    山东
  • 本文字数:622 字

    阅读完需:约 2 分钟

当 iOS 13 之后,可以设置 tableView style 为 insetGrouped。但是当前最低支持版本是 iOS 10

根据设计,可以在 section header 和 footer 里绘制。当然还有直接一种直接操作 cell

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if ([cell respondsToSelector:@selector(tintColor)]) {
if (indexPath.row == 0) { UIRectCorner rectCorner = [tableView numberOfRowsInSection:indexPath.section] == 1 ? UIRectCornerAllCorners : (UIRectCornerTopLeft | UIRectCornerTopRight); cell.layer.mask = [cell addRadiusToSpecificCorner:rectCorner andRadius:CGSizeMake(8, 8)];
} else if (indexPath.row == [tableView numberOfRowsInSection:indexPath.section] -1) { cell.layer.mask = [cell addRadiusToSpecificCorner:UIRectCornerBottomLeft | UIRectCornerBottomRight andRadius:CGSizeMake(8, 8)]; } }}
复制代码

UIView 的扩展

- (CAShapeLayer *)addRadiusToSpecificCorner:(UIRectCorner)corner andRadius:(CGSize)radius {    UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds byRoundingCorners:(corner) cornerRadii:radius];    CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];    maskLayer.frame = self.bounds;    maskLayer.path  = maskPath.CGPath;    return maskLayer;}
复制代码


用户头像

刿刀

关注

还未添加个人签名 2018-11-15 加入

还未添加个人简介

评论

发布
暂无评论
iOS tableView添加group分组_刿刀_InfoQ写作社区