可能的重复:
如何在 UITableView 中进行就地编辑? https://stackoverflow.com/questions/2803626/how-to-do-edit-in-place-in-a-uitableview
我是这款 iPhone 开发的新手。
我只想知道如何在 tableView 中编辑/更新 UITextLabel。
我已经在使用编辑/完成动画并且能够删除行,但我无法了解如何编辑这些行中的文本。
我希望用户在点击编辑按钮时编辑单元格的文本标签。
我已经搜索过该网站但无法得到确切的答案。
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CellIdentifier"];
if(!cell)
{
cell = [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CellIdentifier"]autorelease];
cell.editingAccessoryType=YES;
}
myTextField = [[UITextField alloc] initWithFrame:CGRectMake(15, 6, 241, 31)];
myTextField.backgroundColor = [UIColor clearColor];
myTextField.textAlignment = UITextAlignmentLeft;
myTextField.returnKeyType = UIReturnKeyDone;
myTextField.delegate = self;
cell.accessoryView = myTextField;
myTextField.text = [self.arrayOfItems objectAtIndex:indexPath.row];
myTextField.enabled = NO;
return cell;
}
-(IBAction)Edit:(id)sender
{
if(self.editing)
{
[myTextField.Enabled = YES];
[super setEditing:NO animated:NO];
[self.tab setEditing:NO animated:NO];
[self.tab reloadData];
[self.navigationItem.rightBarButtonItem setTitle:@"Done"];
[self.navigationItem.rightBarButtonItem setStyle:UIBarButtonItemStylePlain];
}
else
{
myTextField.enabled= YES;
[super setEditing:YES animated:YES];
[self.tab setEditing:YES animated:YES];
[self.tab reloadData];
[self.navigationItem.rightBarButtonItem setTitle:@"Edit"];
[self.navigationItem.rightBarButtonItem setStyle:UIBarButtonItemStyleDone];
}
}
- (UITableViewCellEditingStyle)tableView:(UITableView *)aTableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (self.editing == NO || !indexPath)
return UITableViewCellEditingStyleNone;
if (self.editing && indexPath.row == ([self.arrayOfItems count]))
{
return UITableViewCellEditingStyleInsert;
}
else
{
return UITableViewCellEditingStyleDelete;
}
return UITableViewCellEditingStyleNone;
}
这对我不起作用。如果我点击编辑按钮,文本字段就会消失
编辑表行本身中的文本很困难,因为您需要管理键盘并向上滚动可编辑字段以为键盘等腾出空间(在编辑等时可能会滚动到屏幕之外)。此外,如果您使每个单元格都可编辑,则必须管理编辑的值,使其能够在编辑过程中滚动到屏幕之外等(即当键盘处于活动状态时等)。
UILabel 不可编辑,您需要 UITextField 来编辑文本。
实现对表格单元格中的值进行编辑的最佳方法可能是在编辑操作上将新的视图控制器推送到堆栈上,并在那里有一个可编辑的文本字段,并将保存/取消栏按钮项添加到该视图的菜单中控制器。
当用户按下“保存”时,使用适当的文本值更新表视图后面的模型,并再次将视图控制器从堆栈中弹出。让包含表的主视图在其 viewWillAppear 方法中调用 tableView 上的 reloadData 。
这将使您在编辑字段时能够最简单/最好地控制键盘行为和编辑行为。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)