【发布时间】:2015-09-04 02:57:37
【问题描述】:
如何在这个圆形UIView中在绿色覆盖的区域内应用清晰的颜色,否则中心的白色会从中心淡出。
代码如下:-
UIView *vwx=[[UIView alloc]initWithFrame:CGRectMake(150, self.view.frame.size.height/2, 100, 100)];
vwx.layer.cornerRadius = 50;
vwx.layer.masksToBounds = YES;
CircleGradient *gradientLayer = [CircleGradient new];
gradientLayer.frame = vwx.bounds;
[vwx.layer addSublayer:gradientLayer];
[self.view addSubview:vwx];
这是我在子类化CALayer中所做的
- (void)drawInContext:(CGContextRef)ctx
{
size_t gradLocationsNum = 2;
CGFloat gradLocations[2] = {0.0f, 1.0f};
CGFloat gradColors[3] = {0.0f,0.0f,0.0f};
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);
}
任何帮助或建议都会有所帮助
【问题讨论】:
标签: ios iphone ipad uiview calayer