当前位置: 首页 > 编程笔记 >

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

林英武
2023-03-14
本文向大家介绍iOS中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应用开发中UITableView的分割线的一些设置技巧,包括了iOS应用开发中UITableView的分割线的一些设置技巧的使用技巧和注意事项,需要的朋友参考一下 对于ios7,ios8及以上来说,调整UITableView的cell的分割线位置已经是相当不便,因为UITableView内部使用了margin layout. 其实只需要如下这样子就可以实现分割线的控制。 如果要

  • 本文向大家介绍IOS 基础之设置 tableview 的分割线,包括了IOS 基础之设置 tableview 的分割线的使用技巧和注意事项,需要的朋友参考一下  ios tableView 设置 tableview 的分割线 实现效果图:   [tableview   setSeparatorColor:[UIColor    blueColor]];  //设置分割线为蓝色 隐藏UITableV

  • 本文向大家介绍分享一些iOS开发实用的小技巧,包括了分享一些iOS开发实用的小技巧的使用技巧和注意事项,需要的朋友参考一下 1.设置navigationbar title颜色 2.获取UIColor RGB 3.修改textField的placeholder的字体颜色、大小 4.将color转为UIImage 5.加载启动图的时候隐藏statusbar 在info.plist中加入Status b

  • 如果我用同样的柱形图,他每次都会把原有的柱形图覆盖掉,能不能单独设置一列分割线出来,像图里这样的。 也就类似于xy同时设置柱形图。 linemark也会覆盖在原有的柱形图之上,有无办法让其反过来呢?柱形图压着linemark。

  • 介绍 用于将内容分隔为多个区域。 引入 import { createApp } from 'vue'; import { Divider } from 'vant'; const app = createApp(); app.use(Divider); 代码演示 基础用法 默认渲染一条水平分割线。 <van-divider /> 展示文字 通过插槽在可以分割线中间插入内容。 <van-di

  • 使用指南 引入方式 import { Divider } from "feart"; components:{ 'fe-divider':Divider } 代码演示 基础用法 默认渲染一条水平分割线 <fe-divider /> 展示文字 通过插槽在可以分割线中间插入内容 <fe-divider>文字</fe-divider> 虚线 添加dashed属性使分割线渲染为虚线 <fe-di