网上很少搜到
insetGrouped
的样式和用法,结合自己的项目,大概阐述一下用法,最下方包含自己实现的源码
升级iOS版本后,细心的小伙伴发现了自带的 备忘录 app的列表样式发生了更改,圆角cell算是现在比较新潮的设计,本文主要讲一下系统的实现方案和自己用代码的实现方案。
一、系统实现方案
1. insetGrouped用法
很简单,用 xib 或代码方式初始化tableView时选择Style为 insetGrouped ,样式如下:
![](https://i-blog.csdnimg.cn/blog_migrate/92cb688f911136e2700b8f83d6922916.png#pic_center)
⚠️注意点:
- 必须选择
insetGrouped
样式 - 上述样式需要多个group,如果是单个group样式或plain样式则不能实现此效果(如下图)
- api是iOS 13及以上才能使用
2. 单个group样式预览
![](https://i-blog.csdnimg.cn/blog_migrate/c87bbe4a47cafd96af3b5ccac94bcab4.png#pic_center)
了解了👆注意点后,如果有特殊情况,比如兼容iOS13及以下或单个group样式怎么处理呢?下面就给出实现方案
二、自定义代码实现方案
分为三步
1. 核心代码(可以放在BaseController里)
/// 设置cell圆角
/// - Parameters:
/// - cell: cell
/// - indexPath: indexPath
/// - tableView: tableView
/// - needSetAlone: 是否需要单独设置每个cell都是圆角. 默认按section为单位整体设置, 如果一个section只有一个cell则全部设置圆角
public func setCornerRadiusForSectionCell(cell: UITableViewCell, indexPath: IndexPath, tableView: UITableView, needSetAlone: Bool, cellY: CGFloat) {
//圆角半径
let cornerRadius:CGFloat = 10.0
//下面为设置圆角操作(通过遮罩实现)