Установка цвета фона сгруппированного UITableViewCell - PullRequest
2 голосов
/ 30 августа 2011

У меня есть группа UITableView. Я пытаюсь сделать пользовательский UITableViewCell фон:

 - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {

        self.contentView.opaque = YES;
        self.contentView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"rowbg@2x"]];

        //Change Indicator
        CGRect rect;
        rect = CGRectMake(0, 0, 10, 50);
        changeImageIndicator = [[UIImageView alloc] initWithFrame:rect];
        [self.contentView addSubview: changeImageIndicator];

        //Symbol
        rect = CGRectMake(10, 10, 200, 20);
        symbolLabel = [[UILabel alloc] initWithFrame:rect];
        symbolLabel.textAlignment = UITextAlignmentLeft;
        symbolLabel.font = [UIFont fontWithName:@"Arial" size:22];
        symbolLabel.textColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
        symbolLabel.backgroundColor = [UIColor clearColor];
        [self.contentView addSubview: symbolLabel];

        //Company
        rect = CGRectMake(10, 30, 180, 20);
        companyLabel = [[UILabel alloc] initWithFrame:rect];
        companyLabel.textAlignment = UITextAlignmentLeft;
        companyLabel.font = [UIFont fontWithName:@"Arial" size:13];
        companyLabel.adjustsFontSizeToFitWidth = YES;
        companyLabel.minimumFontSize = 10.0; 
        companyLabel.backgroundColor = [UIColor clearColor];
        companyLabel.textColor = [UIColor colorWithRed:118.0/255.0 green:118.0/255.0 blue:118.0/255.0 alpha:1.0];
        [self.contentView addSubview: companyLabel];

        //Price
        rect = CGRectMake(190, 10, 100, 20);
        priceLabel = [[UILabel alloc] initWithFrame:rect];
        priceLabel.textAlignment = UITextAlignmentRight;
        priceLabel.font = [UIFont fontWithName:@"Arial" size:20];
        priceLabel.textColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
        priceLabel.backgroundColor = [UIColor clearColor];
        [self.contentView addSubview: priceLabel];

        //Change
        rect = CGRectMake(190, 30, 100, 20);
        changeLabel = [[UILabel alloc] initWithFrame:rect];
        changeLabel.textAlignment = UITextAlignmentRight;
        changeLabel.font = [UIFont fontWithName:@"Arial" size:15];
        changeLabel.textColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
        changeLabel.adjustsFontSizeToFitWidth = YES;
        changeLabel.backgroundColor = [UIColor clearColor];
        changeLabel.minimumFontSize = 10.0; //adjust to preference obviously

        [self.contentView addSubview: changeLabel];
    }
    return self;
}

Цвет фона проплывает мимо закругленных углов. Смотрите изображение: enter image description here

Как я могу сделать так, чтобы это не кровоточило?

Ответы [ 7 ]

4 голосов
/ 23 ноября 2011

Это работает для iOS 3.0 и более поздних версий:

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    cell.backgroundColor = [UIColor redColor];
}
1 голос
/ 30 августа 2011

А как же self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;?

0 голосов
/ 18 апреля 2012

Установить цвет фона ячейки в табличном представлении : cellForRowAtIndexPath:

cell.backgroundColor = [UIColor colorWithPatternImage:[UIImage  imageNamed:@"Gradient.png"]]; 
0 голосов
/ 01 сентября 2011

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

0 голосов
/ 30 августа 2011

Вы пытались установить backgroundColor backgroundView, а не contentView?

0 голосов
/ 30 августа 2011

self.contentView.superview.opaque = YES; self.contentView.superview.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @ "rowbg @ 2x"]];

0 голосов
/ 30 августа 2011

Это работало для меня, когда больше ничего не делал.Установите цвет фона в IB на цвет сгруппированного табличного представления (по умолчанию).Затем в коде установите цвет на clearColor.У меня также есть ячейки, помеченные как opaque = NO и clearsContextBeforeDrawing = NO, но одни эти настройки ничего не изменили, пока я не добавил clearColor по коду - Bdebeez

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