В конечном итоге я пытаюсь создать наложение градиента, чтобы исчезнуть с 60% черного до прозрачного, до 40% черного. Результат имеет много полос, поэтому я просто пытаюсь получить два цвета, которые работают правильно.Плохой рисунок CGGradient с альфой
В этом первом случае я пробую градиент от сплошного черного до сплошного белого, который отлично рисуется.
Во втором случае, я размещая градиент от 100% черного цвета, чтобы очистить, против твердого серого фона. Группование действительно ужасно.
код, чтобы сделать этот градиент выглядит следующим образом:
// Draw the overlay gradient
CGContextTranslateCTM(context, 0.0, size.height);
CGContextScaleCTM(context, 1.0, -1.0);
UIColor *firstColor = [UIColor colorWithWhite:0.0 alpha:1.0];
UIColor *secondColor = [UIColor clearColor];
CGContextSetBlendMode(context, kCGBlendModeSourceAtop);
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
NSArray *coreGraphicsColors = @[(id)firstColor.CGColor, (id)secondColor.CGColor];
CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (__bridge CFArrayRef)coreGraphicsColors, 0);
static const CGFloat standardDegree = 270;
const CGFloat degree = (standardDegree * M_PI/180);
const CGPoint center = CGPointMake(size.width/2, size.height/2);
const CGPoint startPoint = CGPointMake(center.x - cos(degree) * size.width/2, center.y - sin(degree) * size.height/2);
const CGPoint endPoint = CGPointMake(center.x + cos(degree) * size.width/2, center.y + sin(degree) * size.height/2);
CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0);
CGGradientRelease(gradient);
CGColorSpaceRelease(colorSpace);
Кто-нибудь есть опыт/советы с созданием этих градиентов, которые частично прозрачными? Я попытался изменить несколько вещей, таких как положение и цветовое пространство, но все это не помогло.
Вы можете оставить картину того, что результат выглядит? – Fonix
@Fonix Этот код генерирует второй снимок экрана. – Ricky
О, извините, фотографии не хотели загружать для меня по какой-либо причине – Fonix