如何创建一个只能选择一行的表视图

时间:2011-08-31 06:50:50

标签: iphone objective-c uitableview

您需要创建一个只包含一个像img这样的单元格的表格视图。

enter image description here

2 个答案:

答案 0 :(得分:1)

 - (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tv dequeueReusableCellWithIdentifier:@"CellWithSwitch"];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CellWithSwitch"] autorelease];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    cell.textLabel.font = [UIFont systemFontOfSize:14];
    if(indexPath.row == 0)
        cell.accessoryType = UITableViewCellAccessoryCheckmark;
}

cell.textLabel.text = @"Sound Effects";
return cell;

}

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)path {
     UITableViewCell *cell = [tableView cellForRowAtIndexPath:path];

     if(path.row == 0)
     {
         if (cell.accessoryType == UITableViewCellAccessoryCheckmark) {
             cell.accessoryType = UITableViewCellAccessoryNone;
         } else {
             cell.accessoryType = UITableViewCellAccessoryCheckmark;
         }
     }
 }

答案 1 :(得分:0)

如果你只想选择一行,你必须在表的方法中管理它:

  1. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 中你需要实现选择逻辑。如果单击未选定的对象,则选择该对象并取消选择所有其他对象,或仅取消选择当前选定的对象(如果选择了一个)。如果单击所选对象,只需在此处取消选择
  2. 即可
  3. 如果您更改了表格内容中的内容,请不要忘记执行[theTableView reloadData]; 以防屏幕无法更新
  4. 然后重绘您只需确保您的方法- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 确保以某种方式标记所选对象。这样你也可以做一些很好的事情,比如显示一个切换开/关按钮或者你可能想要的任何东西。