Я хочу обратить круговой обзор хода с градиентом, как изображение:Как нарисовать градиент в прошивкой
Я попытался кодом ниже, но результат цвет не является правильным. Это мой код:
//draw gradient
CGFloat colors [] = {
1.0, 0.7,
0.2, 0.4
};
CGFloat locations[] = { 0.0, 1.0 };
CGColorSpaceRef baseSpace = CGColorSpaceCreateDeviceGray(); // gray colors want gray color space
CGGradientRef gradient = CGGradientCreateWithColorComponents(baseSpace, colors, locations, 2);
CGColorSpaceRelease(baseSpace), baseSpace = NULL;
CGContextSaveGState(context);
CGContextAddPath(context, progressPath);
CGContextClip(context);
CGRect boundingBox = CGPathGetBoundingBox(progressPath);
CGPoint gradientStart = CGPointMake(0.0, CGRectGetMinY(boundingBox));
CGPoint gradientEnd = CGPointMake(1.0, CGRectGetMaxY(boundingBox));
CGContextDrawLinearGradient(context, gradient, gradientStart, gradientEnd, 0);
CGGradientRelease(gradient), gradient = NULL;
CGContextRestoreGState(context);
progressPath
является строка прогресса с цветом:
[UIColor colorWithRed:21/255.0f green:182/255.0f blue:217/255.0f alpha:1.0]
UPDATE:
Это изображение мой код, созданный: Result Image В результате изображение не тот же дизайн, цвет не то же самое. Я не знаю, почему.
Пожалуйста, помогите мне исправить это. Заранее спасибо.
К сожалению, в моем ответе предполагается, что вы хотите использовать градиент угла, но при ближайшем рассмотрении похоже, что на самом деле изображение использует линейный градиент. Можете ли вы отправить изображение изображения, которое производит этот код, чтобы мы могли видеть, что не так с выходом? –
Вместо того, чтобы рисовать серые цвета с альфа-каналом на синем фоне, попробуйте использовать цвета RGB, которые вы выбираете из исходного изображения. По моим измерениям они должны быть RGB (78, 95, 99) и RGB (139, 206, 227). –