iOS学习笔记 15:separatorInset设置UITableView的分割线无效的问题

一、问题描述

UITableView分割线要显示到最左端

查看UITableView的属性,发现设置separatorInset的值可以自定义分割线的位置。

@property (nonatomic) UIEdgeInsets separatorInset NS_AVAILABLE_IOS(7_0) UI_APPEARANCE_SELECTOR; // allows customization of the frame of cell separators

打印separatorInset,其默认值{0, 15, 0, 0},上、左、下、右距离原位置分别为0、15、0、0,即左侧会有默认15像素的空白

用以下代码进行设定UITableViewController的UITableView分割线。UIEdgeInsetsZero相当于UIEdgeInsetsMake(0, 0, 0, 0)。

 1 -(void)viewDidLoad
 2 {
 3     //设置分割线的风格
 4     self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
 5
 6     //设置分割线距边界的距离
 7     if([self.tableView respondsToSelector:@selector(setSeparatorInset:)])
 8     {
 9         self.tableView.separatorInset = UIEdgeInsetsZero;
10     }
11 }

运行,发现达不到我想要的效果,分割线只是距离最左端近了,但还是没显示到最左端,效果图如下:

二、问题分析

时间: 2025-01-16 00:24:40

iOS学习笔记 15:separatorInset设置UITableView的分割线无效的问题的相关文章

iOS学习笔记 20:去掉UITableView多余的空白行分割线

一.问题描述 在学习和开发中经常会遇到下面的问题,UITableView的UITableViewCell很少或者没有时,但UITableView有很多的空白行分割线.如下图: 如何去掉UITableView多余的空白行分割线? 二.问题分析 方法一:隐藏UITableViewCell自带的分割线,然后自定义分割线到UITableViewCell.自定义分割线的方法有很多种,可以自行查找. 方法二:很简单,修改tableFooterView.创建frame为CGRectZero的UIView,赋值

IOS学习笔记 ---- 15/08/31

1.pch文件中的代码是全局的,不管是#import头文件还是#define宏,都可以在项目中的所有文件中使用.(凡是涉及到OC语法的内容都要放入到#ifdef __OBJC__  #endif中).2.pch中最好使用下面的宏对NSLog函数进行替换,在发布的时候直接将后部的NSLog进行注释则代码中不会打印任何值. #define MyLog(...) NSLog(__VA_ARGS__) 3.IOS在未打包状态的时候会默认有一个DEBUG宏,在打包后则会自动删除,可以利用判断来优化上方代码

IOS学习笔记 ---- 15/09/02

1.三种方式监听方式: addTarget方法: 使用代理方法: [[NSNotificationCenter defaultCenter] addObserver]方法监听通知: 2.在storyboard删除原来的ViewController后再添加NavigationController时没有自动设置成initial View Controller,需要手动设置. 3.push方法已经不推荐使用,现在的show方法相当于以前的push. 4.如果使用按钮拖线到另一个ViewControll

IOS学习笔记 ---- 15/09/07

1.TableView自带滑动删除功能,只要实现代理的方法tableView:commitEditingStyle:forRowAtIndexPath:方法即可,在方法中做数据的操作,刷新表格就行. 2.刷新表格有两种方法: tableView:reloadRowsAtIndexPath:该方法使用前提是模型数据与tableView的行数要求一致. tableView:deleteRowsAtIndexPath:该方法使用前提是模型数据删除的个数和表格删掉的行数要一致. 3.编辑状态只要修改ta

IOS学习笔记 ---- 15/09/06

1.prepareForSegue进行的时候,目标控制器的所有view还没创建,此时对其中的对象进行操作是无效的,应该在viewDidLoa方法中实现所需要的赋值等操作. 2.修改表内数据的时候,如果跳转下一个页面传递的时候直接进行赋值,传递的是指针,在另一个页面修改完毕后关闭页面,直接reloadTable就达到修改的效果了. 3.TableViewCell如果是通过storyboard或者xib创建的则不会调用init开头的方法(initWithCoder是特例),只会调用awakeFrom

IOS学习笔记 ---- 15/09/14

1.Sqlite3数据库的创建顺序: 先使用C语言函数 [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] 来获得数据库的Document目录,再通过 stringByAppendingPathComponent 方法来拼接出数据库文件目录; 创建一个sqlite3的指针对象,并且赋予NULL值; 使用C语言函数 sqlite3_open(数据库目录.UTF8St

iOS学习笔记之UITableViewController&UITableView

iOS学习笔记之UITableViewController&UITableView 写在前面 上个月末到现在一直都在忙实验室的事情,与导师讨论之后,发现目前在实验室完成的工作还不足以写成毕业论文,因此需要继续思考新的算法.这是一件挺痛苦的事情,特别是在很难找到与自己研究方向相关的文献的时候.也许网格序列水印这个课题本身的研究意义就是有待考证的.尽管如此,还是要努力的思考下去.由于实验室的原因,iOS的学习进度明显受到影响,加之整理文档本身是一件耗费时间和精力的事情,因此才这么久没有写笔记了. M

iOS学习笔记—— UItableView 控件的简单使用

UITableView 可以说是iOS开发中最常用的控件,除了游戏之外,几乎所有的应用中独会出现他的身影. 使用UITableView控件需要遵守两种协议 UITableViewDelegate和 UITableViewDataSource. 常用方法如下: 1.返回(每个分区)表单元个数(行数) - (NSInteger) tableView: (UItableView *) tableVIew numberOfRowsInSection: (NSInteger)section 2.返回表单元

iOS学习笔记(4) — UITableView的 重用机制

iOS学习笔记(4) — UITableView的 重用机制 UITableView中的cell是动态的,在使用过程中,系统会根据屏幕的高度(480)和每个cell的高度计算屏幕中需要显示的cell的个数.比如,cell高度为90.那么480 / 90 = 5 + 1,也就是说最多有6个cell能显示在屏幕中. 系统会创建1个cel池,无论tableview有多少行都只创建6个cell放在池中.当某行移出屏幕的时候,将这个cell放回在池中:当某行需要显示在屏幕中时,从池中取出一个cell. 重