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

 更新时间:2017年05月04日 11:15:39   作者:鹤鸣  
在项目开发中我们会常常遇到tableView 的cell分割线显示不全,左边会空出一截像素,更有甚者想改变系统的分割线,下面通过这篇文章来一起学习学习在iOS中tableView cell分割线的一些设置技巧,需要的朋友可以参考借鉴,下面来一起看看吧。

前言

对于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));
 }

总结

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

相关文章

  • iOS App项目中引入SQLite数据库的教程

    iOS App项目中引入SQLite数据库的教程

    SQLite是一个极轻的嵌入式数据库,在应用程序中捆绑使用可以更方便地帮助操控关系型数据,这里我们就来看一下iOS App项目中引入SQLite数据库的教程
    2016-06-06
  • iOS多线程开发——NSThread浅析

    iOS多线程开发——NSThread浅析

    这篇文章主要介绍了 iOS多线程开发——NSThread浅析,需要的朋友可以参考下
    2016-05-05
  • iOS 生成plist文件,在项目中代码创建plist的实例

    iOS 生成plist文件,在项目中代码创建plist的实例

    下面小编就为大家分享一篇iOS 生成plist文件,在项目中代码创建plist的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • iOS实现列表与网格两种视图的相互切换

    iOS实现列表与网格两种视图的相互切换

    相信大家应该也都发现了,在现在很多的电商app中,都会有列表视图和网格两种视图的相互切换。例如京东和淘宝。这样更利于提高用户的体验度,所以这篇文章小编就是大家分享下利用iOS实现列表与网格两种视图相互切换的方法,文中介绍的很详细,感兴趣的下面来一起看看吧。
    2016-10-10
  • iOS上下拉刷新控件MJRefresh使用方法详解

    iOS上下拉刷新控件MJRefresh使用方法详解

    这篇文章主要为大家详细介绍了iOS上下拉刷新控件MJRefresh的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • iPhoneX 媒体查询适配的方法教程

    iPhoneX 媒体查询适配的方法教程

    这篇文章主要介绍了iPhoneX 媒体查询适配的方法教程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • IOS Swift 开发QRCore(二维码)实例详解

    IOS Swift 开发QRCore(二维码)实例详解

    这篇文章主要介绍了IOS Swift 开发QRCore(二维码)实例详解的相关资料,这里对开发二维码进行了详细介绍,需要的朋友可以参考下
    2016-12-12
  • iOS开发探索多线程GCD队列示例详解

    iOS开发探索多线程GCD队列示例详解

    这篇文章主要为大家介绍了iOS开发探索多线程GCD队列示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • iOS实时录音和播放功能

    iOS实时录音和播放功能

    这篇文章主要为大家详细介绍了iOS实时录音和播放功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • 源码解析ios开发SDWebImage方法

    源码解析ios开发SDWebImage方法

    这篇文章主要为大家介绍了源码解析ios开发SDWebImage方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08

最新评论