我想创建一个带有10px圆角和渐变填充的UIBezierPath
。我怎样才能实现这种效果?
这是我想要做的图像:
如你所见,这个方块有:
如何在不使用图案图像颜色
的情况下以编程方式执行此操作?以下是我创建路径的方法:
UIBezierPath *border = [UIBezierPath bezierPathWithRoundedRect:self.bounds cornerRadius:10.0f];
[border setLineWidth:2];
[[UIColor blackColor] setStroke];
[border stroke];
[[UIColor redColor] setFill]; <-- what should I put here?
[border fill];
答案 0 :(得分:4)
我能想到的三种方式。
创建一个CAGradientLayer并将其作为View.layer的子图层插入。您甚至可以在图层上放置圆角半径。当然,你必须导入QuartzCore框架。
使用CoreGraphics这样做:
CGGradientRef gradient;
CGColorSpaceRef colorspace;
size_t num_locations = 2;
CGFloat locations[2] = { 0.0, 1.0 };
CGFloat components[8] = { 1.0, 0.0, 0.0, 1.0, // Start color
0.0, 1.0, 0.0, 1.0 }; // End color
colorspace = CGColorSpaceCreateDeviceRGB();
gradient = CGGradientCreateWithColorComponents (colorspace, components, locations, num_locations);
CGContextDrawLinearGradient (ctx, gradient, gradientStartPoint, gradientEndPoint, 0);
CGGradientRelease(gradient);
创建一个像素宽且具有渐变的离屏图像上下文,生成图像,然后使用colorWithPatternImage设置背景颜色。
这些是最容易最难的。