iOS小技巧 - 和屏幕等宽的Table分割线

时间:2023-03-08 15:45:21

前言

因为本人也是学习iOS才一个多月,在写程序的过程中经常会遇到一些看似应该很简单,但是要解决好却要知道一点小trick的问题。

因此后面会陆续记一些这类问题,一来加深印象,二来也可以做个备忘录。

正文

先介绍一下工作环境,目前使用的是xcode 6,SKD版本8.1。

UITableView相信是大家最常用的控件,有一次在实现一个页面时,设计要求是表格分割线是和屏幕等宽的。但是目前的默认的表格分割线和屏幕左端是有一段距离的,如下图:

iOS小技巧 - 和屏幕等宽的Table分割线

第一反应肯定是去看表格的属性列表,看看有什么可以设置的,还真的看到了一个相关属性

iOS小技巧 - 和屏幕等宽的Table分割线

把Sepatator Indent设置为Custom,惊喜地看到Left属性为15

iOS小技巧 - 和屏幕等宽的Table分割线

这时我想只要把15变为0不就行了吗?运行起来

iOS小技巧 - 和屏幕等宽的Table分割线

看上去好像达到了效果,但是表格是空的,总有点不太放心,那就上点数据看看效果

iOS小技巧 - 和屏幕等宽的Table分割线

当时我就绝望了。。。。为什么有数据了之后,表格分隔符的表现形式会不一样呢?这时候当然求助万能的google,然后搜索结果是无惊无险地指向了万能的*。

试了几个标记为答案的方案后,我发现还是解决不了问题,很多答案底下也有人评论在ios 8上不起作用,后来我在这里找到了答案,虽然没有标记为答案但是确实解决了我的问题。

在自己的tablecell子类中添加如下代码:

- (UIEdgeInsets)layoutMargins
{
return UIEdgeInsetsZero;
}

注意:前面的属性设置还是要继续保持为0

然后,当当当!

iOS小技巧 - 和屏幕等宽的Table分割线