如何在目标c中的UITableView中更新先前选定的行时,如何显示带有复选标记的选定行

时间:2016-07-04 12:04:42

标签: ios objective-c iphone

我试过这样......在cellForRowAtIndex()

- (UITableViewCell *)tableView:(UITableView *)tableView    cellForRowAtIndexPath:(NSIndexPath *)indexPath
  {
       static NSString *SimpleTableViewIdentifier=@"SimpleTableViewIdentifier";

      UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:SimpleTableViewIdentifier];

   if (cell == nil)
   {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:SimpleTableViewIdentifier];
   }
cell.selectionStyle = UITableViewCellSelectionStyleNone;
    cell.textLabel.text=[hardDependencyAlldataArray objectAtIndex:indexPath.row];

return  cell;
}

并在didSelectRowAtIndexPath中添加了以下代码行。

 UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
[tableView deselectRowAtIndexPath:indexPath animated:YES];

但是,在更新之前选择的值时,复选标记未显示在以前选择的行上。任何人都可以帮助解决此问题。提前谢谢.. :)

2 个答案:

答案 0 :(得分:2)

我认为这是你需要做的。在cellForRowAtIndexPath方法中,不是为所有单元格指定cell.selectionStyle = UITableViewCellSelectionStyleNone;,而是仅为未选中的单元格指定为空白

更改didSelectRowAtIndexPath方法以将选定的单元格详细信息存储到数组

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
[self.selectedCellArray addObject:[hardDependencyAlldataArray objectAtIndex:indexPath.row]];
[tableView deselectRowAtIndexPath:indexPath animated:YES];

现在改变像这样的cellForRowAtIndexPath方法

- (UITableViewCell *)tableView:(UITableView *)tableView    cellForRowAtIndexPath:(NSIndexPath *)indexPath
  {
       static NSString *SimpleTableViewIdentifier=@"SimpleTableViewIdentifier";

      UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:SimpleTableViewIdentifier];

      if (cell == nil)
      {
         cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:SimpleTableViewIdentifier];
      }
      cell.textLabel.text=[hardDependencyAlldataArray objectAtIndex:indexPath.row];

      if (![self.selectedCellArray containsObject:[hardDependencyAlldataArray objectAtIndex:indexPath.row]])
      {
          cell.selectionStyle = UITableViewCellSelectionStyleNone;
      }
      else
      {
          cell.accessoryType = UITableViewCellAccessoryCheckmark;
      }
      return  cell;
}

答案 1 :(得分:1)

我得到了Tamim。检查下面的答案。我尝试了示例项目。工作正常。

$ipaddress = $(ipconfig | where {$_ -match 'IPv4.+\s(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' } | out-null; $Matches[1])