Я понял это сегодня вечером. Я вошел в three20UI.xcodeproj и посмотрел, где строится UITableViewCell, то есть Источник данных, а затем подклассифицировал тот источник данных, который я использую для настройки своей таблицы.
Например, если у вас есть таблица, в которой используется TTSectionedDataSource, то вы создаете подкласс этого, скажем, мы называем его MySectionedDataSource, а затем внутри реализации этого подкласса вы захотите сделать что-то подобное:
- (void)tableView:(UITableView*)tableView
cell:(UITableViewCell*)cell
willAppearAtIndexPath:(NSIndexPath*)indexPath {
UIView *view = [[UIView alloc] initWithFrame: CGRectMake(cell.frame.origin.x, cell.frame.origin.y, cell.width, cell.height)];
view.backgroundColor = [UIColor colorWithRed:1 green:1 blue:0.75 alpha:1];
cell.selectedBackgroundView = view;
}
Это должно сделать это.
Сначала я попытался установить selectedBackgroundView внутри
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
но это не похоже на работу. Я искал код, чтобы выяснить, почему, то есть, что-то в контроллере, делегате, ячейке или источнике данных переустанавливало выбор bg, но ничего там не было. Я закончил тем, что вынужден был искать технически так, что сам не решил ...:)
Удачи.