fuz*_*uzz 3 iphone gradient objective-c quartz-graphics cgcolor
我正在尝试按照下面的屏幕截图使用相同的渐变CGGradientCreateWithColorComponents.
这就是我目前正在使用的,但它并不完全正确,我正在尝试猜测这些值.我还想知道如何实际确定这些值是什么,因为这个代码是从一个教程中获取的,而这个教程根据组件的含义完全没有解释.
CGColorSpaceRef myColorspace = CGColorSpaceCreateDeviceRGB();
CGFloat components[8] = { 1, 1, 1, 1, 0.866, 0.866, 0.866, 1 };
CGFloat locations[2] = { 0.0, 1.0 };
CGGradientRef myGradient = CGGradientCreateWithColorComponents(myColorspace, components, locations, 2);
Run Code Online (Sandbox Code Playgroud)

小智 10
我玩过它并得到了这张照片:

有颜色:
static const CGFloat colors [] = {
0.894, 0.894, 0.894, 1.0,
0.694, 0.694, 0.694, 1.0
};
Run Code Online (Sandbox Code Playgroud)
使用这段代码:
- (void) drawRect:(CGRect)rect {
CGColorSpaceRef baseSpace = CGColorSpaceCreateDeviceRGB();
CGGradientRef gradient = CGGradientCreateWithColorComponents(baseSpace, colors, NULL, 2);
CGColorSpaceRelease(baseSpace), baseSpace = NULL;
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClearRect(context, rect);
CGContextSaveGState(context);
CGPoint startPoint = CGPointMake(CGRectGetMidX(rect), CGRectGetMinY(rect));
CGPoint endPoint = CGPointMake(CGRectGetMidX(rect), CGRectGetMaxY(rect));
CGContextClip(context);
CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0);
CGGradientRelease(gradient), gradient = NULL;
CGContextRestoreGState(context);
[super drawRect:rect];
}
Run Code Online (Sandbox Code Playgroud)
我不知道它是否足够接近.
| 归档时间: |
|
| 查看次数: |
6523 次 |
| 最近记录: |