0
を働いていない私は、次のUIViewカスタムクラスを持っている:カスタム勾配BackgroundViewは
@implementation BackgroundView
- (void)drawRect:(CGRect)rect
{
CGContextRef currentContext = UIGraphicsGetCurrentContext();
CGGradientRef glossGradient;
CGColorSpaceRef rgbColorspace;
size_t num_locations = 2;
CGFloat locations[2] = { 0.0, 1.0 };
float r = (255.0)/(255.0);
float g = (165.0)/(255.0);
float b = (0.0)/(255.0);
float rr = (238.0)/(255.0);
float gg = (118.0)/(255.0);
float bb = (0.0)/(255.0);
CGFloat components[8] = { r, g, b, 1.0, // Start color
rr, gg, bb, 1.0 }; // End color
rgbColorspace = CGColorSpaceCreateDeviceRGB();
glossGradient = CGGradientCreateWithColorComponents(rgbColorspace, components, locations, num_locations);
CGRect currentBounds = self.bounds;
CGPoint topCenter = CGPointMake(CGRectGetMidX(currentBounds), 0.0f);
CGPoint midCenter = CGPointMake(CGRectGetMidX(currentBounds), CGRectGetMidY(currentBounds));
CGContextDrawLinearGradient(currentContext, glossGradient, topCenter, midCenter, 0);
CGGradientRelease(glossGradient);
CGColorSpaceRelease(rgbColorspace);
}
@end
基本的にはオレンジ色のグラデーションを作ることになっています。値 "r"、 "g"、 "b"は明るいオレンジ色、 "rr"、 "gg"、 "bb"は濃いオレンジ色の値です。しかし、それは動作しません。フレームの上部のみがオレンジ色で、フレームの下部は黒です。私は黒を取り除くことができない。
オレンジ色のグラデーションにはどのような値を使用しますか?誰かが間違いを探すことができますか?私は何も見つけることができません。本当にありがとう!あなたはグラデーションの終点がcurrentBoundsの途中であることを指定するためだ