1

残念ながら、UIView で放射状グラデーションを描画することで解決策を得ることができません。

見て...それが私が描きたい方法です(これはPSで作成されました): ここに画像の説明を入力

しかし、私は現在これにこだわっています: ここに画像の説明を入力

それが私のコードです:

CGGradientRef radialGradient;
CGColorSpaceRef rgbColorspace;

size_t num_locations = 2;
CGFloat locations[2] = { 0.0, 1.0 };
const CGFloat *colorComponents = CGColorGetComponents(textColor.CGColor);
CGFloat components[8] = { colorComponents[0], colorComponents[1], colorComponents[2], 1.0,  // Start color
    1.0, 1.0, 1.0, 1.0 }; // End color

rgbColorspace = CGColorSpaceCreateDeviceRGB();
radialGradient = CGGradientCreateWithColorComponents(rgbColorspace, components, locations, num_locations);

CGRect currentBounds = self.bounds;
CGPoint midCenter = CGPointMake(CGRectGetMidX(currentBounds), CGRectGetMidY(currentBounds));

CGContextDrawRadialGradient(myContext, radialGradient, midCenter, 8.0, midCenter, 1.0, kCGGradientDrawsAfterEndLocation);



CGGradientRelease(radialGradient);
CGColorSpaceRelease(rgbColorspace);

誰かが私に正しいヒントを教えてくれることを願っています;)

クリス、週末を楽しもう

4

1 に答える 1

2

基本的には2ヶ所以上使用する必要があります。2 つの位置を使用すると、開始位置と終了位置の間で一定の勾配が得られます。サンプル画像は、ほとんどの場所の開始色から終了までの色と、より薄い終了色を示しています。サンプル画像を見ると、少なくとも 3 つの場所が必要で、最終色を変更する必要があります。

于 2013-10-26T09:07:19.710 に答える