UITableViewCell цвет левой стороны - PullRequest
1 голос
/ 23 февраля 2011

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

У меня сейчас есть цвет в таблице, но это так. Это мой код:

UIView *theView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, cell.frame.size.height)];
[theView setBackgroundColor:[UIColor purpleColor]];

[cell.contentView addSubview:theView];

[[cell textLabel] setText:@"Some row"];

Это результат:
enter image description here

С уважением,
Пол Пилен

Ответы [ 2 ]

1 голос
/ 23 февраля 2011

В конце концов, я решил это, используя «CoreGraphics», как предложил NR4TR.

Я создал новый UIView и переписал функцию drawRect.

Это код результата:

- (void)drawRect:(CGRect)rect {
    float radius = 10.0f;

    CGContextRef context = UIGraphicsGetCurrentContext();   
    rect = CGRectInset(rect, 0.0f, 0.0f);

    CGContextBeginPath(context);
    CGContextMoveToPoint(context, CGRectGetMinX(rect) + radius, CGRectGetMinY(rect));
    CGContextAddLineToPoint(context, CGRectGetMaxX(rect), CGRectGetMinY(rect));


    if (bottom)
    {
        CGContextAddArc(context, CGRectGetMinX(rect) + radius, CGRectGetMaxY(rect) - radius, radius, M_PI / 2, M_PI, 0);
    }
    else {  
        CGContextAddLineToPoint(context, CGRectGetMaxX(rect), CGRectGetMaxY(rect));
    }

    CGContextAddLineToPoint(context, CGRectGetMinX(rect), CGRectGetMaxY(rect));

    if (top)
    {
        CGContextAddArc(context, CGRectGetMinX(rect) + radius, CGRectGetMinY(rect) + radius, radius, M_PI, 3 * M_PI / 2, 0);
    }
    else {
        CGContextAddLineToPoint(context, CGRectGetMinX(rect), CGRectGetMinY(rect));
    }

    CGContextSetFillColorWithColor(context, theColor.CGColor);
    CGContextClosePath(context);
    CGContextFillPath(context);
}
0 голосов
/ 23 февраля 2011

Самый быстрый и простой способ - использовать изображения для первой и последней ячеек.

Есть немного более изощренный способ - рисование с помощью Базовая графика

РЕДАКТИРОВАТЬ: ваш случай это просто прямоугольник плюс четверть эллипса (или просто круговой ломтик ).

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