当我设置一个包含4行的表视图时,在填充的行下面还有额外的分隔符行(或额外的空白单元格)。

我该如何移除这些细胞?


#1楼

只需添加一个视图,其中所需的分隔符颜色为背景颜色,100%宽度,位于x0 y-1处的1px高度到tableViewCell。 确保tableViewCell不剪辑子视图,而不是tableView应该。

因此,您只能在现有单元格之间获得绝对简单且有效的分隔符,而不会出现每个代码或IB的任何黑客攻击。

注意:在垂直顶部反弹时,第一个分隔符会显示,但这不应该是一个问题,因为它是默认的iOS行为。


#2楼

试试这个。 它对我有用:

- (void) viewDidLoad
{[super viewDidLoad];// Without ARC//self.tableView.tableFooterView = [[[UIView alloc] init] autorelease];// With ARC, tried on Xcode 5self.tableView.tableFooterView = [UIView new];
}

#3楼

这是另一种方法,可以用分组表格样式,而你可能不会猜到。 向表中添加 页眉和 页脚 (可能是一个或其他,没有检查) 会导致分隔符从填充/空白行中消失。

我偶然发现这是因为我想在桌子的顶部和底部留一点空间,以减少按钮的风险,而不是用手指粗糙的桌子。 这是一种将空白视图作为页眉和页脚粘贴的方法。 使用您喜欢的任何高度,您仍然可以消除额外的分隔线。

- (void) addHeaderAndFooter
{UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 10)];v.backgroundColor = [UIColor clearColor];[self.myTableView setTableHeaderView:v];[self.myTableView setTableFooterView:v];[v release];
}

为了回应@Casebash,我回到我的应用程序中的代码(iTunes商店中的“AcmeLists”列表管理器......)并将addHeaderAndFooter方法短路以进行验证。 没有它 ,我有额外的行分隔符; 使用代码,我在你的窗口中看到了snap: 没有表格行分隔符图片 。 所以我不确定为什么它不适合你。 此外,对我来说,在表视图上设置任何自定义页脚必然会停止为其下方的空行绘制行分隔符。 那将是可怕的。 作为参考,我查看了可以在屏幕上查看的行数更多的表格,然后查看了包含两行的表格。 在这两种情况下,都没有外来的分离器。

也许您的自定义视图实际上并未添加。 要检查这一点,请将背景颜色设置为clearColor以外的clearColor ,例如[UIColor redColor] 。 如果您在桌子底部没有看到一些红条,则表示您的页脚未设置。


#4楼

我知道这个问题已被接受答案,但我在这里提出了不同的方法来隐藏UITableView额外分隔线。

您可以隐藏tableView的标准分隔线,并在每个单元格的顶部添加自定义行。

更新:

添加自定义分隔符的最简单方法是添加1px高度的简单UIView

UIView* separatorLineView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 1)];
separatorLineView.backgroundColor = [UIColor grayColor]; /// may be here is clearColor;
[cell.contentView addSubview:separatorLineView];

要么

    self.tblView=[[UITableView alloc] initWithFrame:CGRectMake(0,0,320,370) style:UITableViewStylePlain];self.tblView.delegate=self;self.tblView.dataSource=self;[self.view addSubview:self.tblView];UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 10)];v.backgroundColor = [UIColor clearColor];[self.tblView setTableHeaderView:v];[self.tblView setTableFooterView:v];[v release];

要么

- (float)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {// This will create a "invisible" footerreturn 0.01f;
}- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{// To "clear" the footer viewreturn [[UIView new] autorelease];
}

或者我喜欢的最好和最简单的方式是

self.tableView.tableFooterView = [[UIView alloc] init];

尝试任何一个;


#5楼

我使用表视图来显示固定数量的固定高度行,所以我只是调整它的大小并使其不可滚动。


#6楼

适用于使用Storyboard的iOS 7+

只需将UIView作为页脚拖动到UITableView中即可。 将页脚视图的高度设置为0。


#7楼

Swift中的UITableView中删除空行的额外分隔线

override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view, typically from a nib.self.yourTableview.tableFooterView = UIView()
}

#8楼

推进J. Costa的解决方案:您可以通过以下代码行对表进行全局更改:

[[UITableView appearance] setTableFooterView:[[UIView alloc] initWithFrame:CGRectZero]];

在第一个可能的方法内部(通常在AppDelegate ,在: application:didFinishLaunchingWithOptions:方法中)。


#9楼

试试这个

self.tables.tableFooterView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 10.0f)];

#10楼

如果您使用的是Swift,请将以下代码添加到管理tableview的控制器的viewDidLoad

override func viewDidLoad() {super.viewDidLoad()//...// Remove extra separatorstableView.tableFooterView = UIView(frame: CGRectZero)
}

对于Swift 4.0,不推荐使用CGRectZero,因此您必须使用CGRect.zero


#11楼

对于Swift:

    override func viewDidLoad() {super.viewDidLoad()tableView.tableFooterView = UIView()}

#12楼

我很幸运地实现了一个接受的答案(iOS 9 +,Swift 2.2)。 我曾尝试过实施:

self.tableView.tableFooterView = UIView(frame: .zero)

但是,我的tableView没有任何影响 - 我相信它可能与我使用UITableViewController的事实有关。

相反,我只需要覆盖viewForFooterInSection方法(我没有在其他地方设置tableFooterView ):

override func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {return UIView(frame: .zero)
}

这适用于具有单个部分的tableView (如果您有多个部分,则需要指定最后一个部分)。


#13楼

如果你有一个searchbar在你的view (限制的结果,例如数量),你必须也添加以下shouldReloadTableForSearchStringshouldReloadTableForSearchScope:

controller.searchResultsTable.footerView = [ [ UIView alloc ] initWithFrame:CGRectZero ];

#14楼

uitableview额外的分隔线隐藏额外的分隔符行隐藏在swift 3.0中

 self.tbltableView.tableFooterView = UIView(frame: .zero)

#15楼

Swift非常适合:

tableView.tableFooterView = UIView()

#16楼

如果您不希望在最后一个单元格后面有任何分隔符,那么您的页脚需要接近零但非零高度。

在你的UITableViewDelegate

func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {return .leastNormalMagnitude
}

#17楼

你可以在最后添加一个空页脚然后它会隐藏空单元格,但它看起来也很难看:

tableView.tableFooterView = UIView()

有一种更好的方法:在表格视图的末尾添加1点线作为页脚,空单元格也将不再显示。

let footerView = UIView()
footerView.frame = CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: 1)
footerView.backgroundColor = tableView.separatorColor
tableView.tableFooterView = footerView


#18楼

如果要在UITableview中删除不需要的空间,可以使用以下两种方法

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{return 0.1;
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{return 0.1;
}

#19楼

要以编程方式从UItableview底部消除额外的分隔线,只需记下以下两行代码,它将从中删除额外的分隔符。

tableView.sectionFooterHeight = 0.f;
tableView.sectionHeaderHeight = 0.f;

这个技巧一直在为我工作,试试自己。


#20楼

只需添加此代码( Swift )。 。

tableView.tableFooterView = UIView()

#21楼

如果您只有一个部分,那么最快捷最简单的方法是将表视图样式从“普通”设置为“分组”。 (见图)

如果您有更多部分,则可能需要将标题高度设置为零(取决于您/您的客户/项目经理的口味)

如果你有更多的部分,并且不想弄乱标题(即使在最简单的情况下它只是一行),那么你需要将UIView设置为页脚,就像之前的答案中所解释的那样)


#22楼

Swift 4.0扩展

只是故事板的一个小扩展:

extension UITableView {@IBInspectablevar hideSeparatorForEmptyCells: Bool {set {tableFooterView = newValue ? UIView() : nil}get {return tableFooterView == nil}}
}

#23楼

tableView具有tableFooterView时, UIKit不会创建空单元格。 所以我们可以制作一个技巧,并将零高度的UIView对象指定为tableView页脚。

tableView.tableFooterView = UIView()

#24楼

快速简便的Swift 4方式。

override func viewDidLoad() {tableView.tableFooterView = UIView(frame: .zero)
}

如果你有静电电池。 您还可以从“检查器”窗口关闭分隔符。 (如果你需要分隔符,这是不可取的。在这种情况下,使用上面显示的方法)


#25楼

在Swift(我使用4.0)中,您可以通过创建自定义UITableViewCell类并overriding setSelected方法来实现此目的。 然后separator insets全部separator insets0 。 (我的主要类与表视图有明确的背景)颜色。

override func setSelected(_ selected: Bool, animated: Bool) {super.setSelected(selected, animated: animated)// eliminate extra separators below UITableViewself.separatorInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
}

#26楼

我添加了这个小的tableview扩展,它可以帮助你

extension UITableView {func removeExtraCells() {tableFooterView = UIView(frame: .zero)}
}

#27楼

你可能会找到很多这个问题的答案。 其中大多数都是使用UITableViewtableFooterView属性进行操作,这是隐藏空行的正确方法。 为方便起见,我创建了简单的扩展,允许从Interface Builder打开/关闭空行。 你可以从这个gist文件中查看它。 我希望它可以节省你的一点时间。

extension UITableView {@IBInspectablevar isEmptyRowsHidden: Bool {get {return tableFooterView != nil}set {if newValue {tableFooterView = UIView(frame: .zero)} else {tableFooterView = nil}}}
}

用法:

tableView.isEmptyRowsHidden = true


#28楼

界面构建器(iOS 9+)

只需将UIView拖到表中即可。 在故事板中,它将位于自定义单元格下方的顶部。 您可能更喜欢将其命名为“页脚”。

为清晰起见,此处以绿色显示,您可能需要清晰的颜色。

请注意,通过调整高度,您可以根据需要影响表格的“底部反弹”处理方式。 (高度零通常很好)。


要以编程方式执行此操作:

迅速

override func viewDidLoad() {super.viewDidLoad()self.tableView.tableFooterView = UIView()
}

Objective-C的

iOS 6.1+

- (void)viewDidLoad
{[super viewDidLoad];// This will remove extra separators from tableviewself.tableView.tableFooterView = [UIView new];
}

或者如果你愿意,

    self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

历史上在iOS中:

添加到表视图控制器...

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {// This will create a "invisible" footerreturn CGFLOAT_MIN;}

如有必要......

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{        return [UIView new];// If you are not using ARC:// return [[UIView new] autorelease];
}

#29楼

试试这个

目标C

- (void)viewDidLoad {[super viewDidLoad];// This will remove extra separators from tableviewself.yourTableView.tableFooterView = [UIView new];
}

斯威夫特来说

override func viewDidLoad() {super.viewDidLoad()self.yourTableView.tableFooterView = UIView()
}

#30楼

我想延长wkw的回答:

只需添加高度为0的页脚就可以了。 (在sdk 4.2,4.4.1上测试)

- (void) addFooter
{UIView *v = [[UIView alloc] initWithFrame:CGRectZero];[self.myTableView setTableFooterView:v];
}

甚至更简单 - 在您设置tableview的地方,添加以下行:

//change height value if extra space is needed at the bottom.
[_tableView setTableFooterView:[[UIView alloc] initWithFrame:CGRectMake(0,0,0,0)]];

甚至更简单 - 只需删除任何分隔符:

[_tableView setTableFooterView:[UIView new]];

再次感谢wkw :)

消除UITableView下面的额外分隔符相关推荐

  1. 如何删除UITableView中的空单元格? [重复]

    本文翻译自:How to remove empty cells in UITableView? [duplicate] This question already has an answer here ...

  2. 【工具篇-LaTeX】LaTeX语法

    [工具篇-LaTeX]LaTeX语法 文章目录 [工具篇-LaTeX]LaTeX语法 1 快速入门 1.1 简介 1.2 入门示例 1.2.1 导言和正文 1.2.2 环境 2 基础知识 2.1 命令 ...

  3. 用小神经网络和光谱仪优化关键词识别

    用小神经网络和光谱仪优化关键词识别 Optimizing keyword spotting with small neural networks and spectrographs 随着由语音命令控制 ...

  4. C++应用程序性能优化(三)——C++语言特性性能分析

    C++应用程序性能优化(三)--C++语言特性性能分析 一.C++语言特性性能分析简介 通常大多数开发人员认为,汇编语言和C语言比较适合编写对性能要求非常高的程序,C++语言主要适用于编写复杂度非常高 ...

  5. DPDK — 数据平台优化技术

    目录 文章目录 目录 DPDK 优化技术 DPDK 性能影响因素 硬件结构的影响 OS 版本及其内核的影响 OVS 性能问题 内存管理 CPU 核间无锁通信 设置正确的目标 CPU 类型与模式 优化方 ...

  6. 电感发出声音怎么解决_开关电源有“声音”可以这样解决-电源啸叫解决方案...

    测试开关电源或在实验中有听到类似产品打高压不良的漏电声响或高压拉弧的声音不请自来:其声响或大或小,或时有时无;其韵律或深沉或刺耳,或变化无常者皆有. 音频噪声一般指开关电源自身在工作的过程中产生的,能 ...

  7. 优化案例 | CASE WHEN进行SQL改写优化

    导读 今天给大家分享一个通过SQL改写而独辟蹊径的SQL优化案例 待优化场景 发现SLOW QUERY LOG中有下面这样一条记录: ... # Query_time: 59.503827 Lock_ ...

  8. 数据库系统数据库管理系统_数据库管理系统介绍

    数据库系统数据库管理系统 数据库 (Database) A database is a collection of related data. In database any user can eff ...

  9. 代码 优化 指南 实践

    C代码优化方案 华中科技大学计算机学院 姓名:    王全明 QQ:       375288012 Email:    quanming1119@163.com 目录 目录 C代码优化方案 1.选择 ...

最新文章

  1. 如何避免操作系统中多线程资源竞争的互斥与同步?
  2. fmt打印不显示 go_golang打印输出fmt和log
  3. 键盘样式风格有关设置-iOS开发
  4. 自监督学习的发展趋势:事半功倍的模型训练和数据效能
  5. 未找到要求的 from 关键字_性能优化|这恐怕是解释Explain关键字最全的一篇文章
  6. LeetCode—33. 搜索旋转排序数组
  7. matlab 8.4,《DSP using MATLAB》Problem 8.42
  8. mysqldump备份报Binlogging on server not active的解决
  9. gblfy大数据技术之安装CentOS系列
  10. 快速计算属于你的数字
  11. ht5和python_使用测评曝光美的jsq3016ht3 和ht5哪个好?有什么区别呢?专业评测分析...
  12. php定位符,行定位符、单词定界符实例用法(正则表达式字符集1)
  13. 火山图 多个样本、_statTarget-基于QC样本的代谢组学数据校正
  14. [转载] Python机器学习库scikit-learn使用小结(二)
  15. 宋宝华: CPU是如何访问到内存的?--MMU最基本原理
  16. vue学习笔记-14-过滤器
  17. 微信跳转,wap浏览器跳转到微信
  18. Google插件switchysharp的用法
  19. linux中的日志切割
  20. 炉石传说游戏系统拆解

热门文章

  1. 算法-----礼物的最大价值
  2. A problem occurred evaluating project ':'. ASCII
  3. activity切换交互动画
  4. 【Android】AsyncTask原理应用及源码关键部分解析
  5. 网易游戏2016实习生招聘笔试题目--推箱子
  6. 通过反射来创建对象?getConstructor()和getDeclaredConstructor()区别?
  7. webstorm github怎么用_前端开发神器WebStorm发布最新版本2019.3,代码完成更加智能...
  8. 仿中国比特币首页趋势图,折线图,k线图
  9. swift_019(Swift 的类)
  10. jQuery DOM