iPhone: не можете контролировать ширину градиентов рисования? - PullRequest
0 голосов
/ 17 июля 2011

Мне нужно нарисовать прямоугольник, заполненный градиентом. Я использую UIView и перезаписываю метод -drawRect.

Вот мой код (упрощенно):

CGContextRef c = UIGraphicsGetCurrentContext();     
CGFloat components[8] = {158.0/255.0,36.0/255.0,134.0/255.0,1.0,115.0/255.0,26.0/255.0,93.0/255.0,1.0};

        CGColorSpaceRef rgbColorspace = CGColorSpaceCreateDeviceRGB();

        CGFloat locations[2] = {0.0,1.0};
        CGGradientRef glossGradient = CGGradientCreateWithColorComponents(rgbColorspace, components, locations, 2);

        CGPoint topCenter = CGPointMake(10, 0);
        CGPoint bottomCenter = CGPointMake(10, 10);
        CGContextDrawLinearGradient(c, glossGradient, topCenter, bottomCenter, 0);

Градиентная заливка в настоящее время заполняет всю ширину вида! Что я могу сделать, чтобы контролировать ширину градиентной рамки, которую я рисую?

1 Ответ

0 голосов
/ 17 июля 2011

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

CGContextClipToRect(c, currentBounds);
...