iOS-UITableViewCell自定义分割线

iOS开发笔记--cell最右边显示箭头,字符,自定义分割线 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueRe 阅读详情

在最近的自定义UITableViewCell中遇到分割线间距问题,找了几种解决方法:

设置UITableViewCell分割线间距

方法一:

// 系统版本大于7.0
TableView.separatorInset = UIEdgeInsetsMake(0,0, 0, 0);     //top left bottom right 上左下右边距相同      
TableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine

方法二:

-(void)viewDidLayoutSubviews {  
    if ([_tableview respondsToSelector:@selector(setSeparatorInset:)]) {  
        [_tableview setSeparatorInset:UIEdgeInsetsZero];  
    }  
    if ([_tableview respondsToSelector:@selector(setLayoutMargins:)])  {  
        [_tableview setLayoutMargins:UIEdgeInsetsZero];  
    }  
}  

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{  
    if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {  
        [cell setLayoutMargins:UIEdgeInsetsZero];  
    }  
    if ([cell respondsToSelector:@selector(setSeparatorInset:)]){  
        [cell setSeparatorInset:UIEdgeInsetsZero];  
    }  
}  

方法三:

//第一步:    
//UITableView去掉自带系统的分割线    
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;    

//第二步:    
//在自定义的Cell里重写drawRect:方法    
#pragma mark - 绘制Cell分割线    
- (void)drawRect:(CGRect)rect {    
    CGContextRef context = UIGraphicsGetCurrentContext();    
    CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor);    
    CGContextFillRect(context, rect);    
    //上分割线,    
    CGContextSetStrokeColorWithColor(context, [UIColor colorWithRed:198/255.0 green:198/255.0 blue:198/255.0 alpha:1].CGColor);    
    CGContextStrokeRect(context, CGRectMake(0, 0, rect.size.width, 1));    
    //下分割线    
    CGContextSetStrokeColorWithColor(context, [UIColor colorWithRed:198/255.0 green:198/255.0 blue:198/255.0 alpha:1].CGColor);    
    CGContextStrokeRect(context, CGRectMake(0, rect.size.height, rect.size.width, 1));    
}
iOS中tableView cell分割线的一些设置技巧 在项目开发中我们会常常遇到tableView 的cell分割线显示不全,左边会空出一截像素,更有甚者想改变系统的分割线,下面通过这篇文章来一起学习学习在iOS中tableView cell分割线的一些设置技巧,需要的朋友可以参考借鉴,下面来一起看看吧。 立即下载

相关推荐

TMC5160 StallGuard2调参避坑指南:从SG_RESULT飘忽不定到稳定检测堵转

本文详细解析了TMC5160的StallGuard2功能在堵转测试中的调参技巧,从SG_RESULT波动问题到稳定检测的完整解决方案。通过电流环与反电动势分析、电源噪声处理及低速校准法等实用方法,帮助工程师实现工业级可靠的堵转检测,避免误触发和检测失效问题。

weixin_28727975的博客 378

UITableViewCell的separatorInset属性

separatorInset这个属性是IOS7后才有的属性,     if (IOS7_OR_LATER) {       cell.separatorInset = UIEdgeInsetsZero;     }

标哥 1万+

重构工业交互体验:响应式数据可视化大屏解决方案

从智慧园区到数据中心,从水务监控到风力发电场景,HT 通过 2D/3D 组态技术与响应式布局机制,让数据以更灵活、更精准的方式呈现场景动态 —— 这正是 HT 技术在工业可视化领域的核心价值。例如,在智慧楼宇监控系统中,HT 引擎可实时渲染建筑结构、设备状态与数据流,同时确保画面在不同尺寸屏幕上的一致性。以某工业数据中心大屏为例,HT 通过暗红色主调搭配工业元素,结合粉色与黄色点缀,打破传统深蓝色大屏的视觉定式,同时通过矢量图形确保色彩在不同亮度下的辨识度 —— 这正是 HT 技术在视觉设计上的独特优势。

Hightopo的博客 889

UITableViewCell 的Separator 间隔线

UITableViewCell 的Separator 间隔线,在iOS7之前它是满屏的,也就是等于width,而在iOS7开始之后,缩进了大约15像素,而在iOS7的时候增加了一个属性: @property (nonatomic) UIEdgeInsets separatorInset NS_AVAILABLE_IOS(7_0)...

anshansui2885的博客 248

Linux 命令行的艺术

Linux 命令行的艺术前言基础日常使用文件及数据处理系统调试单行脚本冷门但有用仅限 OS X 系统仅限 Windows 系统更多资源免责声明熟练使用命令行是一种常常被忽视,或被认为难以掌握的技能,但实际上,它会提高你作为工程师的灵活性以及生产力。本文是一份我在 Linux 上工作时,发现的一些命令行使用技巧的摘要。有些技巧非常基础,而另一些则相当复杂,甚至晦涩难懂。这篇文章并不长,但当你能够熟练...

AI天才研究院 9278

【Nginx学习】5步揭秘Nginx邮件代理模块:邮件代理服务器的功能与实现

Nginx的邮件代理模块(Mail Proxy Module)允许Nginx作为邮件代理服务器,支持SMTP、POP3和IMAP协议。这使得Nginx可以作为一个高性能的邮件网关,用于过滤垃圾邮件、病毒扫描、负载均衡等任务。简单来说,Nginx在这里就像是一个邮递员,负责将邮件从发件人手中安全、快速地送到收件人手中。通过上述的解析,我们可以看到Nginx在邮件代理模块中的设计和实现。从配置解析、连接处理,到协议处理、SSL/TLS加密和日志记录,每一步都至关重要。

java专栏 1312

UITableView和UITableViewCell的详细介绍

一、UITableView   1、UITableView介绍 UITableView为列表视图,继承UIScrollView   2、常用的属性 1)separatorColor  分割线颜色 2)separatorStyle  分割线样式 3)separatorInset 分割线的位置 3)rowHeight  cell的高度,默认为44

CSND_GO 582

代码接单:用 ComfyUI 搭建电商模特换装工作流(保姆级教程)

在闲鱼和小红书上,搜一下“AI 模特图”或者“服装换模特”,你会发现大量的接单需求。太贵:请个外模拍一套图,动辄几千块。太慢:寄样品、排期、拍摄、修图,半个月过去了。太卷:竞对都在上新,你还在等图。“给我一张你的衣服平铺图(或假人图),我 10 分钟给你生成真人上身图,一张只要 50 块。对于商家是省钱,对于你是纯利润。为什么不用 Midjourney?因为 MJ 抽卡不可控,无法保持衣服版型一致。只有 ComfyUI,才能做到精准控制,实现工业化量产。

BUG猿的博客 1776

iOS开发给UITableViewCell绘制分割线

UITableView可能是我们做开发中用到的最多控件了,自定义UITableViewCell展示不同的数据,这时我们要想每个cell显示的数据比较分明,我们就要给每个cell之间添加一个分割线,通常情况下我们会在cell最底部添加一个高度为1的UIView视图,这里我们也可以在-(void)drawRect:(CGRect)rect方法中绘制我们的分割线-(void)drawRect:(CGRec

DaveChen 1441

Easy系列PLC远程IO模块的安装配置和地址访问(EtherCAT总线)

EtherCAT分布式时钟DC(SOEM源码解析)EtherCAT分布式时钟DC(SOEM源码解析)_soem dc同步-优快云博客文章浏览阅读1.2k次。分布式时钟(DC,Dsitributed Clock)可以使所有 EtherCAT设备使用相同的系统时间,从而控制各设备任务的同步执行。_soem dc同步1200PLC连接分布式IO组态编程应用(ES200SP固件版本不同解决方法)

RXXW_Dor的博客 174

C++设计模式之观察者模式

观察者模式(Observer Pattern)是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象状态发生变化时,所有依赖于它的对象都会得到通知并自动更新。这种模式通常用于实现分布式事件处理系统,当一个对象(称为“主题”或“发布者”)改变状态时,所有注册的观察者都会收到通知。

每天进步一点点。 600

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

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

秋枫 1124

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ios 改变cell分割线高度_IOS 自定义UITableViewCell:Cell高度、分割线、间距等 | 学步园...

如何动态调整Cell高度1. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {2.3. staticNSString*CellIdentifier=@"Cell";4.5. UITableViewCell*cell =[ta...

weixin_42231590的博客 283

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

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

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

ios 改变cell分割线高度_[Iphone]iOS UITableView之自定义UITableViewCell:Cell高度、分割线、间距等...

[Iphone]iOSUITableView之自定义UITableViewCell:Cell高度、分割线、间距等 子标题: 自定义UITableViewCellUITableView的强大更多程度上来自于可以任意自定义UITableViewCell单元格。通常,UITableView中的Cell是动态的,在使用过程中,会创建一个Cell池,根据每个cell的高度(即tableView:height...

weixin_36448205的博客 254

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

ios 改变cell分割线高度,在iOS 7的UITableViewCell之间绘制自定义分隔线

Because I had some troubles using the default separator line between the UITableViewCell I want to use my own. Therefore I'm using auto layout. C# is the language I used. You can of course provide sol...

weixin_42388176的博客 188

iOS-OC-UITableViewCell分割线自定义

一,使UITableViewCell分割线靠左,不要留间距; 方法一: -(void)viewDidLayoutSubviews { if ([_tableview respondsToSelector:@selector(setSeparatorInset:)]) { [_tableview setSeparatorInset:UIEdgeInsetsZero];

ZFJ_张福杰 3107

iOS 自定义UITableViewCell的分割线

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

岁月静好,善待时光。 428

iOS自定义UITableCell自定义分割线消失问题

iOS自定义UITableCell自定义分割线消失问题 iOS自定义的UITableCell自定义的分割线,在cell复用的时候,cell的分割线会消失。 这样的问题是,你把你的分割线自定义在每个cell上,当cell服用的时候,只会读取你的数据模型的数据,但是你的分割线不会重新划线,如: - (instancetype)initWithStyle:(UITableViewCellS

酷拼车的博客 2300

ios 改变cell分割线高度_自定义UITableViewCell:Cell高度、分割线、间距等

UITableView的强大更多程度上来自于可以任意自定义UITableViewCell单元格。通常,UITableView中的Cell是 动态的,在使用过程中,会创建一个Cell池,根据每个cell的高度(即tableView:heightForRowAtIndexPath:返回 值),以及屏幕高度计算屏幕中可显示几个cell。而进行自定义TableViewCell无非是采用代码实现或采用IB编...

weixin_26757939的博客 368

UITableView自定义每行分割线

自定义分割线,当有数据的时候,才出现分割线,比如只有二条数据,那自然就不用出现满屏的分割线 主流做法: 往cell中添加一根分割线,先去掉默认的分割线,然后在每个对应的cell上添加分割线 补充:取消分割线: self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;//没有分割线 做法:自定义UITableViewCe

smilebigdear的专栏 1026

IOS 自定义UITableViewCell:Cell高度、分割线、间距等

如何动态调整Cell高度  1. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {     2.       3.     staticNSString*CellIdentifier=@"Cell";     4.

hengshujiyi的专栏 2万+

UITableViewCell自定义分割线

UITableViewCell自定义分割线 cell的分割线不能是整个屏幕的长度

RainShenJi的专栏 1117

UITableViewCell绘制分割线

第一步: //UITableView去掉自带系统的分割线 _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 第二步: //在自定义的UITableViewCell里重写drawRect:方法 #pragm...

chuihuang3815的博客 165

自定义UITableViewCell分割线不显示或粗细不同的原因

由于系统默认的UITableView的下划线在自定义的时候并不方便。系统有一个方法tableview setSeparatorInset:inset可以修改分割线的起始和终止位置,但是对分割线的粗细和颜色还是无法随心所欲的修改。 因此我们通常采用自定义一个UITableViewCell的方法来模拟系统提供的分割线。 实现思路如下:首先创建一个继承自UITableViewCell的子类,并在这个类

KT的iOS开发小站 6602
上一篇: iOS 架构模式 -- MVC
下一篇: 微信小程序canvas:各类图表相关组件+Demo源码
黑萝卜不黑
博客等级 码龄11年 41粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值