表格数据更新
//objc
//注意模型增加的数量,要与cell增加的个数相匹配,否则会有bug
insertObjct: atIndex
[self.tableView insertRowsAtIndexPaths:@[NSIndexPath indexPathForRow:0 inSection:0]] withRowAnimation:UITableViewRowAnimationTop];
- 删除
- deleteRowsAtIndexPaths
- 左滑删除按键 commitEditingStyle,若要增加额外的按钮,需要用到手势
- tableView.editing = YES;将表格设置为编辑模式,cell的左边会根据编辑样式的不同,显示加号(增加)或者减号(删除)。
- 更改
- reloadRowsAtIndexPaths
- 注意:不要去尝试对cell视图对象进行增加更改操作,首先,当表格滑动的时候,会将已经改变的cell,放在缓存,将改变传至另外一个cell中;另外,当表格数据重新刷新的时候,仍旧取得是模型中的值。
MVC 思想核心
- model 变 ----> view跟着变,当数据内容发生改变的时候,不需要更改view,就会将变化的数据内容更新显示
UIAlertView 与 UIAlertController
- UIAlertView,使用addSubView 来将其添加至界面中
- UIAlertController,使用presentViewController 弹出来另一个界面。
- View与ViewController的不同之处:添加的方式不同。为什么会造成如此大的区别呢?在View类与ViewController类,写入其中的代码没有什么不同,主要是继承的父类有着特殊的基因,至于基因是什么样的,后续再说。。
批量操作
- 直接修改cell 在上面已经说明
- 更改模型,并将cell类中通过更改的模型来调整视图显示
- 在viewController中在设置额外的数组,再reloadData使用额外的数组更新cell的显示
- 苹果自带的批量操作:编辑模式设置可多选,并把用户选择的索引行记录在indexPathsForSelectedRows中。
tips
- layoutIfNeeded,仍旧是估算控件应该有的布局,仍旧存在误差。对于UITextField,需要设置文字最大宽度,不是UILabel的最大宽度。
- lineBreakMode 文字断开模式,用于单行或者多行显示模式中。