1.删除:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{if (editingStyle == UITableViewCellEditingStyleDelete)
{
NSLog(@"....");
NSUInteger row = indexPath.row;
[self.editArray removeObjectAtIndex:row];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:(UITableViewRowAnimationTop)];
}
//收藏数据更新
// [self replaceCurrentViewData:self.editArray];
}
实现以上函数即可
2;移动:
-(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath
{
if (sourceIndexPath != destinationIndexPath)
{
id object = [self.editArray objectAtIndex:sourceIndexPath.row];
[object retain];
[self.editArray removeObjectAtIndex:sourceIndexPath.row];
if (destinationIndexPath.row > [self.editArray count])
{
[self.editArray addObject:object];
}
else {
[self.editArray insertObject:object atIndex:destinationIndexPath.row];
}
[object release];
}
// [self replaceCurrentViewData:self.editArray];
}
3:插入
这个与删除行类似。实现下面,点击 +号即可。
3.1 首先将editingStyleForRowAtIndexPath方法中的UITableViewCellEditingStyleDelete修改成UITableViewCellEditingStyleInsert -(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete)
{
NSLog(@"....");
NSUInteger row = indexPath.row;
[self.editArray removeObjectAtIndex:row];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:(UITableViewRowAnimationTop)];
}
else
{
NSArray *insertIndexPaths = [NSArray arrayWithObjects:indexPath,nil];
-
- //同样,将数据加到list中,用的row
- [self.list insertObject:@"新添加的行" atIndex:row];
-
[tableView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationRight];
}
//收藏数据更新
// [self replaceCurrentViewData:self.editArray];
}
4:标记:
-
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
- {
- UITableViewCell *oneCell = [tableView cellForRowAtIndexPath: indexPath];
- if (oneCell.accessoryType == UITableViewCellAccessoryNone) {
- oneCell.accessoryType = UITableViewCellAccessoryCheckmark;
- } else
- oneCell.accessoryType = UITableViewCellAccessoryNone;
- [tableView deselectRowAtIndexPath:indexPath animated:YES];
-
}
- else {
- //我们实现的是在所选行的位置插入一行,因此直接使用了参数indexPath
- NSArray *insertIndexPaths = [NSArray arrayWithObjects:indexPath,nil];
- //同样,将数据加到list中,用的row
- [self.list insertObject:@"新添加的行" atIndex:row];
- [tableView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationRight];
- }
-
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath