0
-(void)drawInContext:(CGContextRef)ctx{
size_t gradLocationsNum = 2;
CGFloat gradLocations[2] = {0.0f, 1.0f};
CGFloat gradColors[8] = {255f,255f,255f,1f,255f,255f,255f,1f};
// {R, G, B, A, R, G, B, A}
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, gradColors, gradLocations, gradLocationsNum);
CGColorSpaceRelease(colorSpace);
CGPoint gradCenter= CGPointMake(self.bounds.size.width/2, self.bounds.size.height/2);
float gradRadius = MIN(self.bounds.size.width , self.bounds.size.height) ;
CGContextDrawRadialGradient (ctx, gradient, gradCenter, 0, gradCenter, gradRadius, kCGGradientDrawsAfterEndLocation);
CGGradientRelease(gradient);
}
我希望有一個兩種顏色的根本漸變,任何兩種,我不介意。 我重寫了CALayer,並將它作爲CAGradientLayer返回到視圖控制器的SubLayer中。iOS,CGGradientCreateWithColorComponets設置RGBA顏色
從文檔,蘋果狀態:
如果顏色空間是RGBA色彩空間,並且要在漸變中使用兩個 顏色(一個用於起始位置,另一個是結束位置的 ),那麼您需要爲組件提供8個值 - 紅色, 第一種顏色的綠色,藍色和Alpha值,後面是紅色, 第二種顏色的綠色,藍色和Alpha值。
當我提供{165.0f, 42.0f, 42.0f, 1.0f, 0.0f, 100.0f, 255.0f, 1.0f}
,褐青色滿足,我看到的是藍色的外觀色,白色中心。
我設法玩耍並獲得一些不同的顏色,但他們從來沒有完全正確匹配提供的RGBA代碼。 具體如何實現2種顏色的漸變漸變?