Ios 当用户点击表视图中的行时,如何更新UITableViewCell(原型单元格)中的标签?

Ios 当用户点击表视图中的行时,如何更新UITableViewCell(原型单元格)中的标签?,ios,uitableview,Ios,Uitableview,我正在尝试使用一个表视图(动态)创建一个简单的列表,其中表视图单元格加载了来自简单数组的数据 当用户点击表格视图中的一行时,我试图更新表格视图单元格上的标签 问题:由于某些原因,我可以更新所选单元格上的标签,但该单元格变为灰色,我无法使用以下方法取消选择: [tableView deselectRowAtIndexPath:indexPath animated:NO]; 但是如果我不更新表格视图单元格标签,那么取消选择就可以了 反之亦然,如果我删除取消选择行语句,那么标签更新工作 我不能让他们

我正在尝试使用一个表视图(动态)创建一个简单的列表,其中表视图单元格加载了来自简单数组的数据

当用户点击表格视图中的一行时,我试图更新表格视图单元格上的标签

问题:由于某些原因,我可以更新所选单元格上的标签,但该单元格变为灰色,我无法使用以下方法取消选择:

[tableView deselectRowAtIndexPath:indexPath animated:NO];
但是如果我不更新表格视图单元格标签,那么取消选择就可以了

反之亦然,如果我删除取消选择行语句,那么标签更新工作

我不能让他们同时工作:(

以下是我用来更新标签的代码: -(void)tableView:(UITableView*)tableView未选择RowatineXpath:(NSIndexPath*)indexPath{

 static NSString *CellIdentifier = @"ListCell";
 ListCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];    
 cell.accessoryType = UITableViewCellAccessoryNone;
 cell.TitleLabel.text = @"testing";

有人有什么想法吗?

没有必要在DidSelectRowatingIndexPath方法中使用dequeueReusableCellIdentifier创建新的单元格,这就是文本没有更新的原因。下面的代码应该可以解决您的问题

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    ListCell *cell = [tableView cellForRowAtIndexPath:indexPath];   
    cell.accessoryType = UITableViewCellAccessoryNone;
    cell.TitleLabel.text = @"testing";
}

首先,要获取所选单元格,请使用cellForRowAtIndexPath方法

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    cell.TitleLabel.text = @"testing";

}

其次,要禁用单元格的选择样式,请在cellForRowAtIndexPath方法中将单元格的selectionStyle设置为UITableViewCellSelectionStyleNone

Hi,此代码解决了取消选择的问题,但我有一个自定义单元格,正在尝试更新标签“TitleLabel”在示例中。您的代码写入整行。是否有方法将代码:[tableView cellForRowAtIndexPath:indexPath].textLabel.text=@“New text!”替换为指向我的自定义单元格的内容?(我的列表标识符为“ListCell”,自定义标签为“TitleLabel”…非常感谢!!!:)ListCell*单元格=[tableView cellForRowAtIndexPath:indexPath];生成一个编译器警告ListCell和UITableViewCell不兼容……但它解决了问题,现在可以工作了!!:)(谢谢)
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    cell.TitleLabel.text = @"testing";

}