Кнопка «Удалить» в ячейке UITableview блокирует пользовательские изображения ячейки - PullRequest
0 голосов
/ 12 октября 2010

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

   [self.contentView addSubview:lblDesc];
   [self.contentView addSubview:imagesToDisplay];

Когда я редактирую tableView и нажимаю знак "-", кнопка удаления появляется сверху изображения и другого содержимого.

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

Как мне это сделать ??

Нужно ли мне добавить значение ключа Observer [ячейка addObserver: self forKeyPath: @ "ShowingDeleteConfirmation" опции: NSKeyValueObservingOptionNew context: NULL];

Ответы [ 2 ]

4 голосов
/ 12 октября 2010

Авторазмер прост - думайте об этом как о веб-странице.Веб-контент «течет», он занимает столько места, сколько дает окно браузера.Авторазмер одинаков.Существуют «маски», которые сообщают UIKit, как вы хотите, чтобы ваш контент приспосабливался к разным размерам фреймов.

Так, например, если вы хотите, чтобы ваше представление уменьшалось или увеличивалось с правой стороны (если оно было, дляНапример, выравнивание по левому краю (например, ячейка таблицы), вы должны установить маску следующим образом:

cell.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;

Авторазмер также работает как операция побитового ИЛИ, так что если вы хотите, чтобы он рос справа(как указано выше), но также растут снизу, вы бы "ИЛИ" оба вместе.

cell.autoresizingMask = (UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin);

В случае, если это не работает для вас (например, вы хотите положить слишком много наэкран, и необходимо удалить определенные элементы и т. д., или вы хотите анимировать как-то иначе, чем по умолчанию), рассмотрите возможность использования уже существующих вызовов методов в UITableViewCell.Из документации :

- (void)willTransitionToState:(UITableViewCellStateMask)state

Это будет вызвано непосредственно перед изменением состояния ячейки (обычное-> редактирование или другое), поэтому, если вам нужно сделать что-то особенное для обработкианимация до состояния редактирования, это ваша возможность сделать это.Состояние документа:

Подклассы UITableViewCell могут реализовать этот метод для анимации дополнительных изменений в ячейке, когда она меняет состояние.UITableViewCell вызывает этот метод всякий раз, когда ячейка переходит между состояниями, например, из нормального состояния (по умолчанию) в режим редактирования.Пользовательская ячейка может устанавливать и позиционировать любые новые виды, которые появляются с новым состоянием.Затем ячейка получает сообщение layoutSubviews (UIView), в котором она может расположить эти новые представления в их окончательных местоположениях для нового состояния.Подклассы всегда должны вызывать super при переопределении этого метода. Overriding этого метода.

0 голосов
/ 12 октября 2010

Вам необходимо установить правильное значение autoresizingMask, чтобы ваша кнопка двигалась правильно, когда contentView меняет размер.

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