drawLinearGradient (), но для сплошного цвета - PullRequest
0 голосов
/ 27 января 2012

У меня есть пользовательский класс UITableViewCell, и в нем я переопределил метод drawRect, чтобы получить хороший градиентный фон.Однако мне нужен только градиент для одного случая, и я переключаюсь с помощью оператора if.

Есть ли лучший способ написать это?

- (void) drawRect:(CGRect)rect {
    // Setup gradient
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGColorRef topColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0].CGColor;
    CGColorRef bottomColor = [UIColor colorWithRed:240.0/255.0 green:240.0/255.0 blue:240.0/255.0 alpha:1.0].CGColor;

    CGRect cellRect = self.bounds;

    if (!isDescription)
        drawLinearGradient(context, cellRect, topColor, bottomColor);
    else
        drawLinearGradient(context, cellRect, bottomColor, bottomColor); 

}

Кажется глупым рисовать градиент, когда я хочу тело.Есть предложения?

1 Ответ

1 голос
/ 27 января 2012

Попробуйте посмотреть CGContextFillRect здесь: http://developer.apple.com/library/IOs/documentation/GraphicsImaging/Reference/CGContext/Reference/reference.html

Сначала вам нужно будет установить bottomColor в качестве цвета заливки

...