UITableViewCell с 2 типами аксессуаров - PullRequest
3 голосов
/ 10 июня 2011

Я хотел бы сделать UITableViewCell с одной этикеткой и двумя типами аксессуаров:

  • В невыбранных ячейках должен отображаться аксессуар UITableViewCellAccessoryDetailDisclosureButton.
  • В выбранной ячейке должны отображаться как UITableViewCellAccessoryDisclosureIndicator, так и UITableViewCellAccessoryDetailDisclosureButton аксессуары.

Единственный способ, которым я знаю, как это сделать, это использовать изображение для вспомогательного вида выбранной ячейки. Есть ли альтернативный способ сделать это?

Ответы [ 2 ]

2 голосов
/ 10 июня 2011

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

1 голос
/ 10 июня 2011

В вашем

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    selectedIndex = indexPath //selectedIndex is a property

}

Затем в

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//usual cell stuff

    if(indexPath == selectedIndex) 
        [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
    else
        [cell setAccessoryType:UITableViewCellAccessoryDetailDisclosureButton];


}

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

Обратите внимание, что перед установкой selectedIndex может потребоваться проверить, выбрана ли уже ячейка, в этом случае следует установить selectedIndex = nil.

...