UITableView

UITableView

//自定义辅助视图的内容

UISwitch *mySwitch = [[UISwitch alloc]init];

mySwitch.on = YES;

cell.accessoryView = mySwitch;

tableview : 编辑模式 : 两问一答    移动  一问一答

//开启表格的编辑模式

[self.tableView setEditing:!self.tableView.editing animated:YES];


//编辑模式的两问一答

//问1:当前行是否可以编辑

-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{

//    if (indexPath.row==2) {

//        return NO;

//    }

return YES;

}

//问2:当前行的编辑样式是何种

-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{

if (indexPath.row == self.allContacts.count-1) {

return UITableViewCellEditingStyleInsert;

}

return UITableViewCellEditingStyleDelete;

//此处返回两种样式的或运算,则会出现批量选择的按钮

//return UITableViewCellEditingStyleDelete|UITableViewCellEditingStyleInsert;

}

//答1:提交(commit)编辑动作后,做什么

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{

if (editingStyle == UITableViewCellEditingStyleDelete) {

//1.先修改数据模型

//按照点击动作的行号做下标,删除数组中对应位置的数据

[self.allContacts removeObjectAtIndex:indexPath.row];

//2.更新界面

[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];

//[tableView reloadData];

}else{

//1.修改数据模型

Contact *newContact = [[Contact alloc]init];

newContact.name = @"test";

newContact.phoneNumber=@"12";

newContact.address = @"Beijing";

[self.allContacts addObject:newContact];

//2.刷新界面

//新添加的数据的下标就是对应的行的indexPath

//数据添加到了数组的最后位置上,所以它对应的行号就是count-1

NSIndexPath *newIndexPath = [NSIndexPath indexPathForRow:self.allContacts.count-1 inSection:0];

[tableView insertRowsAtIndexPaths:@[newIndexPath] withRowAnimation:UITableViewRowAnimationRight];

}

}

//实现行的移动的一问一答

//问1:该行是否可以移动

-(BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath{

return YES;

}

//答1:移动后做什么

-(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath{

//1.修改数据模型

//按照原始位置把数据先取出

Contact *c = self.allContacts[sourceIndexPath.row];

//从数组中删掉原来的数据

[self.allContacts removeObjectAtIndex:sourceIndexPath.row];

//再按照新的位置把数据插入到数组中

[self.allContacts insertObject:c atIndex:destinationIndexPath.row];

}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

NSLog(@"选中了%ld",indexPath.row);

}

-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{

NSLog(@"勾掉了%ld",indexPath.row);

}

//设置辅助视图的样式

//cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;

if (indexPath.row == 1) {

//自定义辅助视图的内容

UISwitch *mySwitch = [[UISwitch alloc]init];

mySwitch.on = YES;

cell.accessoryView = mySwitch;

}else{

cell.accessoryView = nil;

}

你可能感兴趣的:(UITableView)