iOS tableView每个section的cell添加圆角
tableView 需要实现类似微信我的页面, tableView 的每个section的 cell ,第一个上部分加圆角,中间不加,最后一个加下圆角。具体效果如下:
也许你会想到
注意⚠️: iOS14 系统 cell 不能上面方法设置圆角
通过图明显我们能够看出来这并不能满足我们需求,就是需要每个分区的第一个 cell 的左上角跟右上角有圆角,中间cell没有圆角,最后一个 cell 的左下角跟右下角有圆角。
也许你会在 cell 中加个背景视图,然后通过它来实现圆角。
注意⚠️: 通过这种方法实现的,如果是死数据,能够正常显示,但是如果通过网络请求或者有延迟刷新时,你会发现会出现闪屏或者不显示效果,所以这种不理想。
我们可以通过 - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 代理方法来实现,这种方法我们需要把 cell 的背景色设置成透明色,然后自定义一个 view 来作为背景视图。
注意⚠️: 通过上述方法添加圆角后,能够正常显示,如果点击 cell 时还是出现 cell 方形效果,这样选中效果不理想。
解决办法: 需要选中状态的话,还需要再自定义一个 UIView 做为 cell 的 selectedBackgroundView ,继续加在 - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 代理方法的最后面。