iOS中tableView cell分割线的一些设置技巧

发布时间 - 2026-01-11 00:58:10    点击率:

前言

对于iOS的tableView的cell的分割线,一般我们很少使用不是系统默认的,但是有些项目要求还是要求我们去改变分割线的颜色或者外形以配合整个项目的色调。这个苹果公司早都为我们想到了。

一、关于分割线的位置。

分割线的位置就是指分割线相对于tableViewCell.如果我们要根据要求调节其位置,那么在iOS7.0版本以后,提供了一个方法如下:

if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {
  
  [self.tableView setSeparatorInset:UIEdgeInsetsMake(0, 45, 0, 0)];
  
 }

UIEdgeInsets 的四个参数分别是相对于cell的上、左、下、右的距离,都是CGFloat型。

二、分割线的颜色及风格:

a、cell的分割线的颜色不是cell的属性,它属于tableView的separatorColor属性。这样我们只需要设置属性值就可以得到所有我们想要的颜色的分割线、

[self.tableView setSeparatorColor:[UIColor clearColor]];

b、cell的风格:它是tableView 的separatorStyle属性,系统给我们提供了三种风格在枚举UITableViewCellSeparatorStyle中定义,分别是

typedef NS_ENUM(NSInteger, UITableViewCellSeparatorStyle) {
 UITableViewCellSeparatorStyleNone,
 UITableViewCellSeparatorStyleSingleLine,
 UITableViewCellSeparatorStyleSingleLineEtched // This separator style is only supported for grouped style table views currently
};

默认的是UITableViewCellSeparatorStyleSingleLine.

三、tableViewCell 分割线自定义

首先要把cell自带的分割线给去掉,使用如下两种都行,一是把颜色设置为clearColor,二是风格设置为UITableViewCellSeparatorStyleNone。

自定义cell分割线大致用到的两种方法

a、把自定义的分割线当成一个View放到cell的contentView上,一定要注意重用问题,所以这个view 要在cell初始化的时候添加上。示例代码如下:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
 UITableViewCell *cell = nil;
 cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
 if (cell == nil) {
  cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"cell"];
  cell.accessoryView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"huicellacce"]];
  cell.backgroundColor = [UIColor clearColor];
//  cell.selected = YES;
  UIImageView *imageViewSepE = [[UIImageView alloc]initWithFrame:CGRectMake(47, 49, 200, 1)];
  imageViewSepE.image = [UIImage imageNamed:@"godline"];
  [cell.contentView addSubview:imageViewSepE];

 }
}

b、比较复杂,用到了底层的框架,

- (void)drawRect:(CGRect)rect { 
CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor); CGContextFillRect(context, rect); 

CGContextSetStrokeColorWithColor(context, [UIColorcolorWithHexString:@"ffffff"].CGColor);
 CGContextStrokeRect(context, CGRectMake(5, -1, rect.size.width - 10, 1)); //下分割线 
CGContextSetStrokeColorWithColor(context, [UIColor colorWithHexString:@"e2e2e2"].CGColor); 
CGContextStrokeRect(context, CGRectMake(5, rect.size.height, rect.size.width - 10, 1));
 }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# tableview  # cell分割线  # ios  # cell分割线颜色  # iOS 解决UICollectionView 计算 Cell 大小的问题  # iOS App开发中使cell高度自适应的黑魔法详解  # 详解iOS开发中UITableview cell 顶部空白的多种设置方法  # iOS中UITableView Cell实现自定义单选功能  # 详解ios中自定义cell  # 自定义UITableViewCell  # iOS中让多个cell上都出现倒计时的分析与实现  # 关于iOS自适应cell行高的那些事儿  # 分割线  # 自定义  # 两种  # 苹果公司  # 相对于  # 设置为  # 的是  # 都是  # 一是  # 给我们  # 它是  # 要在  # 要把  # 三种  # 只需要  # 这篇文章  # 自带  # 谢谢大家  # 都为  # 就可以 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 昵图网官网入口 昵图网素材平台官方入口  JS弹性运动实现方法分析  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  如何用5美元大硬盘VPS安全高效搭建个人网站?  ,在苏州找工作,上哪个网站比较好?  php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】  如何确认建站备案号应放置的具体位置?  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  Laravel API资源类怎么用_Laravel API Resource数据转换  网站制作软件有哪些,制图软件有哪些?  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  nodejs redis 发布订阅机制封装实现方法及实例代码  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  Swift中switch语句区间和元组模式匹配  如何用低价快速搭建高质量网站?  如何在万网ECS上快速搭建专属网站?  EditPlus 正则表达式 实战(3)  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  怎样使用JSON进行数据交换_它有什么限制  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  如何有效防御Web建站篡改攻击?  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  如何快速辨别茅台真假?关键步骤解析  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  开心动漫网站制作软件下载,十分开心动画为何停播?  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  微信小程序 配置文件详细介绍  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  如何在宝塔面板中创建新站点?  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  Bootstrap CSS布局之列表  php打包exe后无法访问网络共享_共享权限设置方法【教程】  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  北京网站制作公司哪家好一点,北京租房网站有哪些?  Laravel集合Collection怎么用_Laravel集合常用函数详解  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  如何快速搭建个人网站并优化SEO?  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  Laravel怎么使用artisan命令缓存配置和视图  Android仿QQ列表左滑删除操作  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  b2c电商网站制作流程,b2c水平综合的电商平台?  Laravel中的withCount方法怎么高效统计关联模型数量  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析