Как изменить размер UITableViewCell Background в режиме редактирования - PullRequest
0 голосов
/ 11 марта 2010

У меня есть табличное представление с пользовательским фоном изображения каждой ячейки. В обычном режиме фон идеален и заполняет все ячейки. Когда tableView входит в режим редактирования, кнопка «-» появляется слева, и все объекты имеют отступ, а слева у меня проблема с фоном: там белая область. Может кто-нибудь мне помочь? Фоновое изображение достаточно велико, чтобы заполнить всю ячейку, но оно переместилось в режиме редактирования. Могу ли я решить это? Большое спасибо!

Обновление:

Я использовал этот код в своем подклассе UITableViewCell:

- (void) layoutSubviews
{

     UIImage *backgroundImage = [UIImage imageNamed:@"sfondoCella2.png"];
     UIImageView *bgView = [[UIImageView alloc] initWithFrame:self.bounds];
     bgView.image = backgroundImage;
     self.backgroundView = bgView;
     [bgView release];

}

Чтобы установить фоновый режим и он работает хорошо в обычном режиме, но при переходе в режим редактирования все идет не так: красная кнопка удаления, не появившаяся на экране, не появляется, а отступ в ячейке (идеально подходит для фона, установленного в IB) неверен.

Ответы [ 2 ]

2 голосов
/ 11 марта 2010

Не думаю, что есть способ добавить фоновое изображение через IB.Вместо этого я предполагаю, что вы просто добавляете подпредставление UIImage.

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

UIImage *backgroundImage = [UIImage imageNamed:@"my-bg.png"];
UIImageView *bgView = [[UIImageView alloc] initWithFrame:self.backgroundView.frame];
bgView.image = backgroundImage;
cell.backgroundView = bgView;
[bgView release];

В идеале вы можете сделать это в пользовательском UITableViewCell метод layoutSubviews и затем сказать IB, что это класс для вашей ячейки.

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

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
- (void)setEditing:(BOOL)editing animated:(BOOL)animated
2 голосов
/ 11 марта 2010

Вы, вероятно, добавили свой вид изображения как подпредставление contentView из UITableViewCell. Вам необходимо установить вид изображения как backgroundView из UITableViewCell.

backgroundView не перемещается в режиме редактирования.

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