UITableViewCell内部的子view层级:
cell
|--contentView
|--imageView
|--textLabel
|--detailTextLabel
在给cell添加子控件时:
1如果直接添加到cell中,tableView的编辑模式的按钮,将重叠在子控件的上面.
2如果把子控件添加到contentView中,tableView编辑模式,将把子控件往中间挤.
表格的编辑模式有一个特点:
1只有实现了某个方法,编辑模式才会开启相应的功能.
2只要实现了某个方法,编辑模式就会自动开启相应的功能.
表格中的方法:
//开启编辑模式手动排序,并且不用更新UI.
- moveRowAtIndexPath:toIndexPath:
//开启表格的编辑模式
- setEditing:animated:
//向表格中插入多行,要求同步数据源.
- insertRowsAtIndexPaths:withRowAnimation:
//删除表格中的多行,要求同步数据源.
- deleteRowsAtIndexPaths:withRowAnimation:
//刷新多行中的数据,要求总行数不能改变.
- reloadRowsAtIndexPaths:withRowAnimation:
表格数据源中的方法:
-(void)tableView:commitEditingStyle:forRowAtIndexPath:
1当点击了删除模式中的删除按钮,就会调用这个方法.
2有趣的是,只要实现了这个方法,就能够向左滑出删除按钮.
3提交的编辑样式只有二种,添加或者删除.
修改删除按钮为中文:
点击项目-->PROJECT-->Info-->Localizations-->添加Chinese(zh-Hans)
此时,xib文件会变为2个.
表格代理中的方法:
-tableView:editingStyleForRowAtIndexPath:
1决定表格编辑模式的按钮,是添加还是删除.
2每次开启编辑模式,都会调用这个方法.