UITableView: 刷新视图、插入行、更新行的两种方式

来源:互联网 发布:dll编程书籍 编辑:程序博客网 时间:2024/03/29 21:29

需求:点击一行cell-1,在其下方插入一个新的cell(datePicker)来选择时间。
在 -cellForRowAtIndexPath 方法中加入判断,对不同行显示内容进行设置,同时设置布尔变量isVisible对显示和隐藏状态进行控制。
点击cell-1时,调用showDatePicker 方法, isVisible = YES,  并显示cell,显示cell 有两种实现方式,一种是直接[tableView reloadData]; 因为在 cellForRow 和 numberOfRows 两个方法中,都对cell进行了设置。 另一种方法调用 reloadRowsAtIndexPath 和 insertRowsAtIndexPath如下:

- (void)showDatePicker {_datePickerVisible = YES;NSIndexPath *indexPathDatePicker = [NSIndexPath indexPathForRow:2 inSection:1];[self.tableView beginUpdates];[self.tableView insertRowsAtIndexPaths:@[indexPathDatePicker] withRowAnimation:UITableViewRowAnimationFade];UITableViewCell *datePickerCell = [self.tableView cellForRowAtIndexPath:indexPathDatePicker];[self.tableView reloadRowsAtIndexPaths:@[indexPathDateRow] withRowAnimation:UITableViewRowAnimationNone];[self.tableView endUpdates];UIDatePicker *datePicker = (UIDatePicker *)[datePickerCell viewWithTag:100];[datePicker setDate:_dueDate animated:NO];}





这种方式可以对显示过程添加动画,并且在行数较多时,节省系统资源。

0 0
原创粉丝点击