我正在创建一个可编辑的表视图,用户可以将其值输入到tableview单元格中。表视图自定义单元格包含多个textview。我有一个像Edit / Done这样的按钮。点击编辑,用户应该能够在包含textview的表格视图单元格中输入值。单击完成后,它将禁用可编辑属性。
下面是我的编辑/删除按钮的方法,但它不能正常运行,可能的解决方案是什么?
- (IBAction) toggleEdit:(id)sender {
[self.tableview setEditing:!self.tableview.editing animated:YES];
static NSString *simpleTableIdentifier = @"ScoreCustomCell";
ScoreCustomCell *cell = (ScoreCustomCell *)[self.tableview dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"ScoreCustomCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
if (self.tableview.editing) {
NSString *tempStr=[NSString stringWithFormat:@"Done"];
[sender setTitle:tempStr forState:UIControlStateNormal];
for (int i=0; i<=23; i++) {
if (cell.scoreText.tag==i) {
[self.tableview setUserInteractionEnabled:YES];
[cell setUserInteractionEnabled:YES];
cell.scoreText.editable=YES;
[cell.scoreText setUserInteractionEnabled:YES];
[cell.scoreText becomeFirstResponder];
[self.tableview reloadInputViews];
}
}
}
else {
NSString *tempStr2=[NSString stringWithFormat:@"Edit"];
[sender setTitle:tempStr2 forState:UIControlStateNormal];
for (int i=0; i<=23; i++) {
if (cell.scoreText.tag==i) {
cell.scoreText.editable=NO;
[self.tableview reloadInputViews];
} }
}
}
答案 0 :(得分:1)
更新您的toggleEdit
方法,如下所示:
- (IBAction) toggleEdit:(UIButton *)sender {
[self.tableview setEditing:!self.tableview.editing animated:YES];
if (self.tableview.editing) {
NSString *tempStr = [NSString stringWithFormat:@"Done"];
[sender setTitle:tempStr forState:UIControlStateNormal];
}
else {
NSString *tempStr2=[NSString stringWithFormat:@"Edit"];
}
[sender setTitle:tempStr2 forState:UIControlStateNormal];
[self.tableView reloadData];
}
现在最后在cellForRowAtIndexPath
方法中放入了一个if-else
cellForRowAtIndexPath
{
...
... Your code here ...
...
// before returning cell add this two lines
[cell.scoreText setEditable:self.tableview.editing];
[cell.scoreText setUserInteractionEnabled:self.tableview.editing];
return cell;
}
希望这有帮助。