iOS 7:UITableView、UIAlertController

表格数据更新

  • 增加
//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 文字断开模式,用于单行或者多行显示模式中。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容