iphone SDK: Как добавить подпредставление изображения в UITableViewController и по-прежнему видеть ячейки? - PullRequest
0 голосов
/ 15 марта 2010

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

Что еще нужно сделать, чтобы ячейки таблицы появлялись поверх фонового изображения? Вот код, который я использую в viewDidLoad UITableViewControlle:

CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 959.0f); 
UIImageView *backImageView = [[UIImageView alloc] initWithFrame:myImageRect]; 
[backImageView setImage:[UIImage imageNamed:@"somebackground.png"]]; 
[self.view addSubview:backImageView];
[self.view sendSubviewToBack:backImageView];
[backImageView release];

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

Ответы [ 2 ]

2 голосов
/ 25 ноября 2010

Это сгруппированное табличное представление. Из яблочных документов:

The grouped style of table view provides a default background color and a default background view for all cells.

Это означает, что за вашей таблицей вставлено изображение по умолчанию. Вы хотите заменить это своим собственным видом, например так:

CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 959.0f); 
UIImageView *backImageView = [[UIImageView alloc] initWithFrame:myImageRect]; 
[backImageView setImage:[UIImage imageNamed:@"somebackground.png"]]; 
self.tableView.backgroundView = backImageView;

Это заменяет другой backgroundView вашим собственным. В противном случае, когда представление таблицы будет разложено снова, это другое фоновое изображение будет перекрывать ваше.

0 голосов
/ 30 апреля 2010

Похоже, что UITableView будет часто переупорядочивать порядок представлений при обновлении. Итак, вам нужно вручную управлять сбросом zorder для любых событий таблицы, таких как вставка / удаление / обновление строк.

...