editAccessoryView не появляется? - PullRequest
0 голосов
/ 10 июня 2011

Я пытаюсь использовать UITableViewController и заменить кнопку режима редактирования (обычно по умолчанию «Удалить») на пользовательский вид.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
     ... (other code) ...
     cell.selectionStyle = UITableViewCellSelectionStyleNone;
     cell.tag = pd.itemId;
     UIImage *indicatorImage = [UIImage imageNamed:@"indicator.png"];
     cell.editingAccessoryView = [[[UIImageView alloc] initWithImage:indicatorImage] autorelease];
     //cell.accessoryView = [[[UIImageView alloc] initWithImage:indicatorImage] autorelease];
     return cell;
}

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
    return NO;
}

Когда я пытаюсь провести, ничего не происходит.Странно то, что если я раскомментирую строку cell.accessoryView, мое изображение будет выглядеть нормально.Это заставляет меня думать, что это что-то не так с настройками редактирования?Но нигде в Интернете или в документации я не могу найти, какими должны быть эти настройки.

Спасибо!

Обновление: Ах.Итак, я дал себе кнопку «Изменить» для навигационного контроллера UITableView.Теперь я могу переключить все ячейки в режим редактирования, и мой аксессуар появится.Что тогда делает «смахивание» клетки?

Курт

1 Ответ

0 голосов
/ 10 июня 2011
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
    return YES;
}

canEditRowAtIndexPath должен возвращать YES, если вы установили editAccessoryView и хотите, чтобы он появился.Простой accessoryView виден, пока таблица не находится в режиме редактирования.Тем не менее, пролистывание ячейки показывает кнопку подтверждения удаления, которая не является editAccessoryView, и связывается с

- (void)willTransitionToState:(UITableViewCellStateMask)state;

без вызова [super willTransitionToState: state];приведет к неожиданному поведению (ваша ячейка не покинет состояние UITableViewCellStateShowingDeleteConfirmationMask).Если вы можете управлять вызовом super и не разрешать ячейке показывать кнопку подтверждения удаления, то все готово.

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