Невозможно изменить индикаторViewView.backgroundColor в табличном представлении. - PullRequest
0 голосов
/ 21 сентября 2011

Я изменил backgroundColor моего UITableView (с изображением шаблона), и я хочу, чтобы мои ячейки были полностью белыми, я назначил backgroundColor для cell.contentView. Я не могу изменить backgroundColor из accessoryType. Как я могу это сделать?

Вот иллюстрация того, что у меня есть на данный момент:

enter image description here

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIImage *bgImg = [UIImage imageNamed:@"backgroundPattern.png"];
    self.tableView.backgroundColor = [UIColor colorWithPatternImage:bgImg];
}

- (UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        // Put an arrow
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

        // In order to have my cell with a white background. I assign a whiteColor
        // to my contentView because assign color to the cell.backgroundColor property doesn't
        // to work..
        cell.contentView.backgroundColor = [UIColor whiteColor];

        // HERE is my problem, I would assign a backgroundColor of my accessoryType.
        // Because for the moment, just behind the accessoryType this is a the color of the
        // tableView.backgroundColor
        cell.accessoryView.backgroundColor = [UIColor whiteColor];
    }

    // Configure the cell...

    return cell;
}

Ответы [ 2 ]

0 голосов
/ 21 сентября 2011

Установите цвет фона ячейки табличного представления, а не представления содержимого.

cell.backgroundColor = [UIColor whiteColor];

Представление содержимого предназначено только для содержимого, которым управляет ячейка табличного представления.Любые дополнительные представления (например, представление доступа или переупорядочение представлений, когда таблица находится в режиме редактирования) обрабатываются внутри таблицы и класса ячеек табличного представления.Они изменяют размер представления содержимого по мере необходимости, поэтому вы не можете полагаться на представление содержимого для установки цвета фона.

РЕДАКТИРОВАТЬ : Извините, это неправильно.Правильное место для установки основанных на состоянии свойств в ячейке табличного представления - метод -tableView:willDisplayCell:forRowAtIndexPath:, равный UITableViewDelegate.Установите цвет фона ячейки здесь.

0 голосов
/ 21 сентября 2011

Не думаю, что вы можете изменить цвет фона стандартного вспомогательного вида. Вместо использования UITableViewCellAccessoryDisclosureIndicator, установите cell.accessoryView для UIImageView, используя ваше собственное изображение.

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