2016-01-19 3 views
2

В конечном итоге я пытаюсь создать наложение градиента, чтобы исчезнуть с 60% черного до прозрачного, до 40% черного. Результат имеет много полос, поэтому я просто пытаюсь получить два цвета, которые работают правильно.Плохой рисунок CGGradient с альфой

В этом первом случае я пробую градиент от сплошного черного до сплошного белого, который отлично рисуется.

First case

Во втором случае, я размещая градиент от 100% черного цвета, чтобы очистить, против твердого серого фона. Группование действительно ужасно.

Second case

код, чтобы сделать этот градиент выглядит следующим образом:

// 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); 

Кто-нибудь есть опыт/советы с созданием этих градиентов, которые частично прозрачными? Я попытался изменить несколько вещей, таких как положение и цветовое пространство, но все это не помогло.

+0

Вы можете оставить картину того, что результат выглядит? – Fonix

+0

@Fonix Этот код генерирует второй снимок экрана. – Ricky

+0

О, извините, фотографии не хотели загружать для меня по какой-либо причине – Fonix

ответ

Смежные вопросы