Как создать табличное представление с возможностью выбора только одной строки - PullRequest
0 голосов
/ 31 августа 2011

Привет, мне нужно создать табличное представление с возможностью выбора только одной ячейки, например: img.

enter image description here

Ответы [ 2 ]

1 голос
/ 31 августа 2011
 - (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;
         }
     }
 }
0 голосов
/ 31 августа 2011

Если вам нравится только одна выбираемая строка, вы должны управлять этим в методах таблицы:

  1. в - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath вам необходимо реализовать логику выбора.если вы щелкнете по невыбранному объекту, вы выделите его и отмените выбор всех остальных или только того, который выбран в данный момент (если он выбран).Если вы щелкнете по выбранному объекту, просто отмените его здесь
  2. не забудьте сделать [theTableView reloadData]; на случай, если ваш экран не обновится, если вы измените что-либо в содержимом таблицы
  3. , чтобы перерисоватьпросто убедитесь, что ваш метод - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath гарантирует, что выбранный объект помечен каким-либо образом.Таким образом, вы также можете делать приятные вещи, например, показывать кнопку включения / выключения или все, что вы пожелаете.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...