UIView на iPad с GroupTableViewBackgroundColor

У меня есть UIView, который я поместил в другой UIView в IB (версия для iPad), я делаю это, чтобы я мог контролировать цвет фона региона.

Странно то, что если я устанавливаю цвет фона UIView для GroupTableViewBackgroundColor, либо в IB, либо в коде, цвет всегда белый, он не учитывает изменение цвета и не отражается в IB.

Кто-нибудь видел такое поведение и нашел исправление?

Заранее спасибо.

2 ответа

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

UITableView *tv = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStyleGrouped];
UIView *backgroundView = tv.backgroundView;
[self.view addSubview:backgroundView];
[tv release];
CGRect backgroundFrame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
[backgroundView setFrame:backgroundFrame];
[self.view sendSubviewToBack:backgroundView];

Я не уверен, связано ли это с вашей проблемой, но Apple внесла некоторые изменения в UITableView для iOS 3.2. Они ввели новое свойство для UITableView, определенное следующим образом:

@property (nonatomic, readwrite, retain) UIView *backgroundView;

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

tableView.backgroundView = nil;

Затем вы должны получить то же поведение, что и на iPhone, когда вы устанавливаете tableView.backgroundColor. (Конечно, все это может измениться с iOS 4.2).

Другие вопросы по тегам