UITableView Ячейка с CheckMarks - PullRequest
       0

UITableView Ячейка с CheckMarks

1 голос
/ 18 апреля 2011

У меня есть проект iphone с UITableView, который заполняется из Core Data ..

Когда выбрана ячейка, пользователь перенаправляется на новый контроллер представления (см. Строку кода ниже), который показывает дополнительную информацию об этой записи ячейки (из основных данных)

[self presentModalViewController:noteViewController animated:YES]

То, что я хочу сделать, - это установить какую-либо галочку с каждой стороны каждой ячейки, чтобы показать, завершена ли задача не полностью.

Я прочитал, что могу сделать это, используя:

UITableViewCellAccessoryCheckmark

но я не уверен, как это сделать, как в настоящее время

didSelectRowAtIndexPath:

используется для представления контроллера модального вида.

Итак, по сути, я хочу знать, существует ли метод для изменения состояния аксессуара ячейки с галочки на ничто (и наоборот) независимо ... в том смысле, что если фактическая галочка сенсорная ... она показывает это. ... и если к нему снова прикоснуться, оно его скрывает ..

Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

9 голосов
/ 18 апреля 2011

Вам нужно будет отслеживать выбранные строки извне из презентации Cell. Это означает, что ваша модель (которую вы использовали для построения ячеек в первую очередь) должна будет отслеживать какой-то логический тип. После того, как вы установили accessoryType на правильный тип.

т.е.

if ([[data objectAtIndex:indexPath.row] isSelected]) {
    cell.accessoryType = UITableViewCellAccessoryCheckmark;
} else {
    cell.accessoryType = UITableViewCellAccessoryNone;
}

Это может быть частью вашей логики:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
6 голосов
/ 18 апреля 2011
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];

  if (selectedCell.accessoryType == UITableViewCellAccessoryNone)
  {
    selectedCell.accessoryType = UITableViewCellAccessoryCheckmark;
  }
  else 
  if (selectedCell.accessoryType == UITableViewCellAccessoryCheckmark)
  {
   selectedCell.accessoryType = UITableViewCellAccessoryNone;
  }
   //Do something
  }

Надеюсь, это поможет

ОБНОВЛЕНИЕ

В этом руководстве вы получите основную информацию о пользовательской ячейке табличного представления.Другой Ссылка .

Я думаю, этот даст вам решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...