Как получить пользовательский цвет фона в TT20TableViewController - PullRequest
3 голосов
/ 05 сентября 2010

имея экземпляр TTTableViewController, я пытаюсь установить фон выбранной ячейки.Мне известна концепция таблиц стилей в Three20, но она просто предлагает:

- (UITableViewCellSelectionStyle)tableSelectionStyle {
    return UITableViewCellSelectionStyleGray;
}

со стандартными параметрами UITableViewCellSelectionStyleNone, UITableViewCellSelectionStyleBlue, UITableViewCellSelectionStyleGray.

Во-вторых, я знаю, что UITViewable мог бы реализоватьпросто возьмите UITableViewCell в подклассе.Можно было бы установить selectedBackgroundView этого класса ячеек:

UIView *myBackView = [[UIView alloc] initWithFrame:self.frame];
myBackView.backgroundColor = [UIColor colorWithRed:1 green:1 blue:0.75 alpha:1];
self.selectedBackgroundView = myBackView;
[myBackView release];

Как я могу установить цвет фона выбранной ячейки в экземпляре TTTableViewController в 320?

1 Ответ

1 голос
/ 08 января 2011

Я понял это сегодня вечером. Я вошел в 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, но ничего там не было. Я закончил тем, что вынужден был искать технически так, что сам не решил ...:)

Удачи.

...