Ios UITableView需要看起来像带有在位编辑字段的联系人

Ios UITableView需要看起来像带有在位编辑字段的联系人,ios,iphone,uitableview,ios6,Ios,Iphone,Uitableview,Ios6,我有一个UITableView,我想以与Contacts应用程序类似的方式使用它,因为它有一个编辑按钮,单击该按钮时会将单元格转换为编辑单元格 目前,它们是使用单元格样式“left detail”设置的,我已经覆盖了setEditing方法,准备好实现,但我不知道如何转换单元格 这里的一些其他回答包括“监视表视图的编辑属性何时更改(当按下“编辑”按钮时)。然后在代理方法中添加代码,以便在表视图处于编辑模式时以不同的方式组合、绘制和缩进单元格。”这正是我想要但不知道如何做的 - (void)set

我有一个UITableView,我想以与Contacts应用程序类似的方式使用它,因为它有一个编辑按钮,单击该按钮时会将单元格转换为编辑单元格

目前,它们是使用单元格样式“left detail”设置的,我已经覆盖了setEditing方法,准备好实现,但我不知道如何转换单元格

这里的一些其他回答包括“监视表视图的编辑属性何时更改(当按下“编辑”按钮时)。然后在代理方法中添加代码,以便在表视图处于编辑模式时以不同的方式组合、绘制和缩进单元格。”这正是我想要但不知道如何做的

- (void)setEditing:(BOOL)flag animated:(BOOL)animated
{
    [super setEditing:flag animated:NO];
    if (flag == YES){
        // Change views to edit mode.
        self.textField = [[UITextField alloc] initWithFrame:[_titleLabel frame]];
        [self.textField setText:_titleLabel.text];
        [self.view addSubview:self.textField];           
    }
    else {
        // Save the changes if needed and change the views to noneditable.
        [_titleLabel setText:self.textField.text];
        [self.textField removeFromSuperview];
    }
}
在我的方法中,我的代码是从中提取的。。排序(它会在错误的位置动态创建一个新的可编辑文本字段,并且不会隐藏标签)。


这些方法不够具体,我无法理解如何开发视图。

简而言之,其工作方式是在整个
UITableView
上设置一个编辑标志,然后实现两个方法(CaneditRowatineXpath、CommittedItingStyle)在
UITableViewDataSource
协议中声明,用于确定正在编辑的单元格

因此,首先需要将UITableVIew置于编辑模式。要在工具栏按钮的处理程序中执行此操作:

[self.tableView设置编辑:是动画:否]

然后,tableview将调用
CaneditRowatineXpath
,以确定该行是否可以编辑:

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
最后,当用户完成编辑时,将调用此方法:

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

这里还有另一个例子:

我有一个解决办法

如果我创建一个自定义行并使其看起来与“left detail”样式相同,但使用右侧的textview而不是标签,我可以更改视图的“seteditable”和“setenabled”字段,以便在编辑时允许编辑。我已经黑字体的颜色,所以它改变时,点击编辑,所以用户可以看到它现在是可编辑的

这看起来很混乱,所以我仍然在寻找最好的方法

- (void)setEditing:(BOOL)flag animated:(BOOL)animated
{
    [super setEditing:flag animated:NO];
    if (flag == YES){        
        [self.tableView setEditing:YES animated:NO];
        [self.sampleLabel setEnabled:YES];
        [self.sampleLabel setTextColor:[UIColor blackColor]];
    }
    else {
        [self.sampleLabel setEnabled:NO];
        [self.sampleLabel setTextColor:[UIColor darkGrayColor]];
    }
}

- (void)configureView
{
    self.titleLabel.text = [[self.detailItem valueForKey:@"title"] description];
    self.ticketNumberLabel.text = [[self.detailItem valueForKey:@"reference"] description];
    self.detailsLabel .text = [[self.detailItem valueForKey:@"details"] description];
    self.sampleLabel.text = [[self.detailItem valueForKey:@"reference"] description];

    // initially set labels to not be editable
    [self.detailsLabel setEditable:NO];
    [self.sampleLabel setEnabled:NO];

}

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Return NO if you do not want the specified item to be editable.
    // item can't be deleted now
    return NO;
}

你想要什么……你能把你的问题说清楚吗。。。很抱歉,我没有得到你…我正在寻找复制联系人应用程序视图,因此当用户单击编辑时,视图中的字段将更新为可编辑字段。谢谢您在编辑tableviewcells时遇到问题??是的-使用标准的我想它们无法编辑。谢谢-删除项目很好,但我不希望这成为一个选项,我只想更改项目的文本,例如票证的标题