iOS之UITableView设置全屏分隔线

iOS利用UITableView设置全屏分隔线的3种方法总结 主要介绍了关于iOS利用UITableView设置全屏分隔线的几种方法的相关对比,分析这三种的各自优缺点,并且分享了设置UITableView的单元格分割线离屏幕左右的距离为0的方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起看看吧。 立即下载
首先系统的分隔线有以下几种
tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

-UITableViewCellSeparatorStyleNone //隐藏系统分隔线
-UITableViewCellSeparatorStyleSingleLine //单分隔线
-UITableViewCellSeparatorStyleSingleLineEtched //被侵蚀的单分隔线
自定义分隔线(首先要隐藏系统的分隔线)
  1. 通过xib或者代码在cell底部添加一条高度为1的UIView或者UILable分隔线。
  2. 通过drawRect:方法自绘一条分割线
// 自绘分割线
- (void)drawRect:(CGRect)rect{
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);
    CGContextFillRect(context, rect);

    CGContextSetStrokeColorWithColor(context, [UIColor colorWithRed:0xE2/255.0f green:0xE2/255.0f blue:0xE2/255.0f alpha:1].CGColor);
    CGContextStrokeRect(context, CGRectMake(0, rect.size.height - 1, rect.size.width, 1));
}

3.重写cell的setFrame:方法

- (void)setFrame:(CGRect)frame{
    frame.size.height -= 1;//设置分隔线

    //设置cell的左右间距
    frame.origin.x = 5;//左间距为5
    frame.size.width = [UIScreen mainScreen].bounds.size.width - 2 * frame.origin.x;

    // 给cellframe赋值
    [super setFrame:frame];
}

4.利用系统属性设置(separatorInset, layoutMargins)设置
- 对tableView的separatorInset, layoutMargins属性的设置

-(void)viewDidLoad {
  [super viewDidLoad];
  //1.调整(iOS7以上)表格分隔线边距
  if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {
      self.tableView.separatorInset = UIEdgeInsetsZero;
  }
  //2.调整(iOS8以上)view边距(或者在cell中设置preservesSuperviewLayoutMargins,二者等效)
  if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) {
      self.tableView.layoutMargins = UIEdgeInsetsZero;
  }
}
  • 对cell的LayoutMargins属性的设置
//对cell的设置可以写在cellForRowAtIndexPath里,也可以写在willDisplayCell方法里
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *ID = @"cell";
    FSDiscoverSpecialCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
    if (cell == nil) {
        cell = [[FSDiscoverSpecialCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID];
    }

   //2.调整(iOS8以上)tableView边距(与上面第2步等效,二选一即可)
    if ([cell respondsToSelector:@selector(setPreservesSuperviewLayoutMargins:)]) {
        cell.preservesSuperviewLayoutMargins = NO;
    }
   //3.调整(iOS8以上)view边距
    if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
        [cell setLayoutMargins:UIEdgeInsetsZero];
    }
    return cell;
}

三种方法优缺点比较:

  • 方法1一般使用系统的cell,或者对cell没有特殊要求的情况下使用系统的分隔线;

  • 方法2是比较好用的,但是有些情况下系统自带的cell就足够用了,仅仅为了分隔线却还必须再自定义cell,添加一个view,设置背景颜色和frame,又显得麻烦;

  • 方法3比较取巧,但是也需要自定义cell,在某些情况下不允许改变tableView的背景色,使用场景有限;

  • 方法4不需要自定义cell,对系统(iOS7,iOS8以上)做个简单判断即可.

STM32+OpenCV云台PID调参实战:从震荡到丝滑跟踪的进阶之路 本文详细介绍了基于STM32和OpenCV的跟踪云台PID调参实战经验。从硬件搭建、PID控制原理到调参技巧,系统讲解了如何通过调整比例、积分和微分参数解决系统震荡问题,实现从震荡到丝滑跟踪的进阶过程,特别适合电赛和嵌入式视觉控制开发者参考。 阅读详情

相关推荐

Android 导出aar 用于Unity 百度语音唤醒

AndroidStudio版本下载地址Android Studio Arctic Fox Unity版本2021.3.26f1c1 新建AndroidStudio工程 新建module 这里注意一下,网上很多教程说要注意包名要和unity一样,但是测试下来,不一样也可以的 在新建的module里添加这两个jar包,并点击右键add as library 导入jniLibs 右键创建这几个package 代码就安装这个大佬的写参考代码 需要注意的的是在WakeupListener脚本里U

weixin_38777563的博客 633

UITableView详解

#import "ViewController.h"@interface ViewController () <UITableViewDataSource, UITableViewDelegate>@property (nonatomic, strong) UITableView *tableView; @property (nonatomic, strong) NSMutableArray *da

baidu_33298752的博客 1915

手把手教你复现KDD 2024时空预测顶会论文:以UniST和ImputeFormer为例的代码实战与避坑指南

本文详细指导如何复现KDD 2024顶会论文中的UniST和ImputeFormer模型,涵盖环境配置、数据处理、模型训练及评估等关键步骤。通过实战案例和避坑指南,帮助研究者掌握时空预测与插补技术,提升在智慧城市、交通管理等领域的应用能力。

weixin_29204205的博客 279

iOS-修改TableView分割线样式

样式一:原始分割线(左边不到屏幕左边缘) _MyTableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine; 三种结构体样式: /** UITableViewCellSeparatorStyleNone, 没有分割线 UITableViewCellS

Mazy's Blog 1万+

别再只用串口助手了!用LabVIEW给STM32F103C8T6做个专属上位机(附完整源码)

本文详细介绍了如何利用LabVIEW为STM32F103C8T6开发定制化上位机,替代传统串口助手,实现高效数据交互。内容涵盖硬件架构设计、STM32固件优化、LabVIEW上位机开发技巧及工业级应用案例,特别适合需要实时数据采集与处理的工控场景。

weixin_42524762的博客 367

ESP32 TWAI CAN库实战:从零构建CyberGear微电机控制框架

本文详细介绍了如何利用ESP32的TWAI控制器和Arduino环境,从零构建一个面向对象的CyberGear微电机控制框架。该框架将复杂的CAN通信协议封装为简洁的API,开发者无需深究底层细节,即可轻松实现电机的速度、位置和扭矩控制,大幅简化机器人关节、云台等项目的开发流程。

oil88的博客 499

iOS-UITableView 设置分割线长度和颜色

网上了看了好多方法去掉UITableview的分割线以及设置分割线颜色的方法,大多都是在iOS7以后的方法。今天给大家来一个多功能全方位的设置的装逼技能废话不多说,上代码在ios7以前的代码// 设置距离左右各10的距离 - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowA...

whuizhou的专栏 4583

物联网组网技术优缺点对比:蓝牙、LoRa、wifi、NB-IoT、ZigBee等

1.前言 最近对物联网产品自组网技术选型,找到合适的组网技术,让产品自行组网并完成数据的传输。 2.参数对比

谁念西风独自凉 4万+

iOS·UITableView分割线颜色,隐藏,边距(宽度,起点)等设置

【代码】iOS·UITableView分割线颜色,隐藏,边距(宽度,起点)等设置。

秋枫 1124

【嵌入式】树莓派部署NCNN的YOLOv5模型

树莓派部署NCNN框架的YOLOv5模型

Ace_Spade的博客 3782

深入解析JESD204B Subclass 1中的SYSREF与LMFC同步机制

本文深入解析了JESD204B Subclass 1协议中的核心同步机制,重点阐述了SYSREF信号如何作为系统级参考,对齐所有设备内部的本地多帧时钟(LMFC),从而实现高速多通道数据采集系统中的确定性延迟。文章结合实战经验,详细说明了硬件设计、时序要点及软件配置流程,是解决多ADC芯片同步对齐问题的关键指南。

weixin_29271263的博客 398

UITableView的cell的分割线的问题

在UITableView中有一个separatorStyle属性来设置分割线的样式.separatorStyle里面有三个枚举值.第一个枚举值UITableViewCellSeparatorStyleNone设置了之后tableView控件就没有线了.第二个枚举值UITableViewCellSeparatorStyleSingleLine设置了之后不论没有没数据的地方都有了线.第三个枚举值UIT...

MeteoriteMan的博客 824

【系统架构设计师-2023年真题】综合知识-答案及详解

要实现多任务间的协同工作,操作系统必须提供任务间的通信手段。嵌入式操作系统一般都会提供多任务间通信的方法,其中()是任务间最直接、最明显的通信方法,也是访问共享的数据结构,即不同的任务都可以访问同一地址空间。()作为一种更高级的通信方式,能够在同一处理器的各个任务间传递任意长度(理论上只受物理内存和机器字长限制)的信息。(1)A. 共享内存 B. Socket C. 消息传递 D. 信号量(2)A. 共享内存 B. Socket C. 消息传递 D. 信号量【答案】A、C关于星型拓扑结构,下列说法正确的是(

数据知道的博客 1万+

android tablerow分割线,TableView添加分割线

1.//设置分割线有内容显示,无内容不显示self.tableView.tableFooterView= [[UIViewalloc]init];2.//设置分割线从头显示//if ([self.tableViewrespondsToSelector:@selector(setSeparatorInset:)]) {//[self.tableView setSeparatorInset:UIE...

ぃ妖气ぅ的博客 870

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

UITableView设置全屏分隔线的几种方法比较

一般TableView设置全屏分隔线有下面三种方法 1.自定义cell,手动添加分割线 隐藏自带的 tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 可以通过addSubview的方式添加一条分割线;也可以自绘分割线。 // 自绘分割线 - (void)drawRect:(CGRect)rect { C...

weixin_34337265的博客 100

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

UITableViewCell分隔线的全屏宽度和高度

方式一:自定义Cell,重写setFrame:方法,在调用父类方法[super setFrame:fame];之前减掉cell的高度:frame.size.height -= 10;减去的值即为分隔线的宽度; 方式二:自定义使用UIView作为分隔线; 方式三:设置iOS8中的tableView中的分隔线内边距separatorInset为Zero,cell的布局外边距layoutMar

人不风流枉少年 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

[iOS开发]UITableView的分割线设置及不能全屏原因

一般TableView设置全屏分隔线有下面三种方法 方法1:自定义cell, 手动添加分割线 首先先隐藏系统自带的分割线, 接下来有2种做法 (建议使用做法a) tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 或者 self.tableView.separatorColor = [UIColor clearColo...

weixin_33980459的博客 211

不用画线 设置UITableView的全屏分隔线

如图 添加如下代码 sTableView.separatorInset = UIEdgeInsetsZero; sTableView.layoutMargins = UIEdgeInsetsZero; cell.layoutMargins = UIEdgeInsetsZero; 第二种方法如下图 -(void)v...

weixin_30687587的博客 68

通过简单的方法适应iOS7中的UIViewController,同时兼容iOS6

通过简单的方法适应iOS7中的UIViewController,同时兼容iOS6 2014-01-10, FRI | COMMENTS 设置view从导航栏下方开始布局 在iOS6及以前的版本中,UIViewController的高度和位置都是从导航栏下方开始的。但是在iOS7中,UIViewController不再提供wantsFullScreenLayout属性,UIVi

iOS&Android开发 597

iOS7适配问题总结

From: http://snowyshell.blog.163.com/blog/static/22091403420139811333756/ 一、状态栏(statusBar) 在iOS7中view默认是全屏模式,状态栏的高度也加在了view的高度上,例如iOS7之前iphone5中self.view.frame.size.height = 548,在iOS7中就是56

caizhongtao的专栏 1106

IOS7 兼容适配总结(一)

转载地址:http://justsee.iteye.com/blog/1945674   ios7新增加的icon尺寸: 76 x 76:Size for iPad 2 and iPad mini (standard resolution) 120 x 120 :Size for iPhone  and iPod touch (high resolution)

CharlesBein_卞 1万+

TableView添加分割线

   1. // 设置分割线有内容显示,无内容不显示     self.tableView.tableFooterView = [[UIView alloc] init];  2. //设置分割线从头显示 //    if ([self.tableView respondsToSelector:@selector(setSeparatorInse...

ochenmengo的博客 728

解决cell切割线不是全屏问题

if ([_tableView respondsToSelector:@selector(setSeparatorInset:)]) {         [_tableView setSeparatorInset:UIEdgeInsetsZero];     }

weixin_34049948的博客 83

TableView添加分割线_篱下悠然_新浪博客

1.// 设置分割线有内容显示,无内容不显示 self.tableView.tableFooterView = [[UIView alloc] init]; 2.//设置分割线从头显示 // if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) { ...

ochenmengo的博客 273
上一篇: iOS之UICollectionView自定义布局
下一篇: iOS之UIMenuController的简单使用
ShmimyCoder
博客等级 码龄10年 0粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值