Метка в фоне блокировки UITableViewCell - PullRequest
3 голосов
/ 07 декабря 2009

У меня проблема с меткой внутри моего UITableViewCell, блокирующего фоновое изображение. Кажется, что это происходит только в невыбранном состоянии. Я попытался установить чистые цвета фона, но это не помогло. Он принимает цвет фона таблицы. Нужно ли устанавливать фоновое изображение меток тоже?

// Neither of these worked...
cell.textLabel.backgroundColor = [UIColor clearColor];
cell.contentView.backgroundColor = [UIColor clearColor];

screen shot

Вот мой cellForRowAtIndexPath

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"SimpleTableIdentifier"];
    if (cell == nil)
    {
        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"SimpleTableIdentifier"] autorelease];
    }

    UIImage *image = [UIImage imageNamed:@"TableRow.png"];
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
    imageView.contentMode = UIViewContentModeScaleToFill;
    cell.backgroundView = imageView;
    [imageView release];

    UIImage *imageSelected = [UIImage imageNamed:@"TableRowSelected.png"];
    UIImageView *imageViewSelected = [[UIImageView alloc] initWithImage:imageSelected];
    imageViewSelected.contentMode = UIViewContentModeScaleToFill;
    cell.selectedBackgroundView = imageViewSelected;
    [imageViewSelected release];


    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    cell.textLabel.textColor = [UIColor whiteColor];
    cell.textLabel.text = [[self.trivia.questionsets objectAtIndex:indexPath.row] valueForKeyPath:@"title"];

    return cell;
}

ОБНОВЛЕНИЕ : Кинда решил ...

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

tableView.backgroundColor = [UIColor redColor];
cell.contentView.backgroundColor = [UIColor orangeColor];
cell.textLabel.backgroundColor = [UIColor yellowColor];

screen shot 2

... и в завершение, если я установлю прозрачные цвета фона таблицы и ячейки, у нас все хорошо. цвет фона текстовой метки не имеет значения.

tableView.backgroundColor = [UIColor clearColor];
cell.contentView.backgroundColor = [UIColor clearColor];
cell.textLabel.backgroundColor = [UIColor yellowColor];

screen shot 3

1 Ответ

0 голосов
/ 08 декабря 2009

Да, это ожидаемое поведение.

Ваше табличное представление - это подпредставление, которое находится перед всем остальным. Если бы что-то находилось перед видом таблицы (то есть на заднем плане), это бы затенило стол.

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