Определите, редактирует ли UITableViewCell «swipe» или «self.editButton» - PullRequest
1 голос
/ 01 декабря 2010

Я пытаюсь определить, находится ли подкласс UITableViewCell в режиме редактирования, по нажатию пользователем (в этом случае мне не нужно делать отступы для моих подпредставлений) или по нажатию пользователем кнопки «Изменить», связанной с UITableViewController.(В этом случае я делаю.)

Я знаю, что это возможно с точки зрения ячейки, поскольку представление self.textLabel автоматически делает отступ правильно.Я попытался:

-(void)layoutSubviews {
   [super layoutSubviews];

   CGRect labelFrame = self.textLabel.frame;
   labelFrame.origin.x += 5;
   myCustomUILabel.frame = labelFrame;
}

Но мой пользовательский ярлык не имеет правильного отступа.(Хотя представление self.textLabel поддерживает?)

Я бы хотел избежать следующего:

  • Предоставление ячейкам ссылки на родительскую таблицу.
  • Переопределение методов в классе UITableViewController, чтобы сообщить ячейкам, редактируются ли они по отдельности или редактируется вся таблица.

Ответы [ 2 ]

6 голосов
/ 01 декабря 2010

Вы можете переопределить willTransitionToState: в своем подклассе UITableViewCell. При нажатии кнопки «Редактировать» состояние будет UITableViewCellStateShowingEditControlMask (= 1), а при перелистывании оно будет UITableViewCellStateShowingDeleteConfirmationMask (= 2).

1 голос
/ 01 декабря 2010

Вы не должны делать отступ вручную. UITableViewCell сделает это за вас!

Все, что вам нужно сделать, это убедиться, что вы добавили свои подпредставления в 'contentView' UITableViewCell. Это причина, по которой self.textLabel отступы правильно, как вы определили.

Посмотрите документацию свойства contentView для UITableViewCell:

Представление содержимого объекта UITableViewCell является суперпредставлением по умолчанию для содержимого, отображаемого ячейкой. Если вы хотите настроить ячейки, просто добавив дополнительные представления, вы должны добавить их в представление содержимого , чтобы они были расположены соответствующим образом при переходе ячейки в режим редактирования .

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