Tag: cagradientlayer

向视图添加渐变(Swift)

#步骤1: 创建一个CAGradientLayer var gradientLayer:CAGradientLayer = { 让gradientLayer = CAGradientLayer() gradientLayer.colors = [#Color1,#Color2] //您要添加的颜色 gradientLayer.startPoint = CGPoint(x:0,y:0) gradientLayer.endPoint = CGPoint(x:1,y:1) gradientLayer.frame = CGRect.zero 返回gradientLayer }() #第2步: 将此渐变图层添加到视图层 yourView.layer.addSublayer(gradientLayer) #步骤3 设置gradientLayer的框架 gradientLayer.frame = yourView.bounds 这是输出…😊

Gradient Layer over ImageView重用

在我的'cellForRowAtIndexPath'我有以下代码来填充图像(asynchronous)并应用自定义渐变 这工作得很好,直到我为每个单元格添加一个自定义颜色。 它现在做的是回收以前的颜色,而不是应用一个新的 – 这大概是由于下面的行将跳过梯度代码一旦应用到每个单元格: if(!cell.gradientMask){ 但是,如果我对此进行注释,则颜色可以正常工作,但每个单元格上的渐变将叠加起来,因为每次都会添加一个新图层(请参阅现有问题 ) 我认为我需要删除每个迭代gradientLayer,是最好的办法或者我可能需要inheritanceUIImageView? if (!cell.gradientMask) { gradientMask = [CAGradientLayer layer]; gradientMask.frame = cell.eventImage.layer.bounds; gradientMask.startPoint = CGPointMake(0.5, 0.2); gradientMask.endPoint = CGPointMake(0.5, 1.0); /* THIS COLOUR CHANGES FOR EACH CELL */ gradientMask.colors = [NSArray arrayWithObjects: (id)[[UIColor colorWithRed:0.0f green:0.0f blue:1.0f alpha:0.0f] CGColor], (id)[[UIColor colorWithRed:0.0f green:0.0f blue:1.0f alpha:1.0f] CGColor],nil]; [cell.eventImage.layer insertSublayer:gradientMask atIndex:0]; cell.gradientMask […]

CAGradient图层在视图中不可见

我尝试在我用Core Graphics制作的饼图中添加Cagradient效果。 事实certificate,我不能够,当然不能很好地理解如何将它应用到CGPath的一部分的视图… override func draw(_ rect: CGRect) { … func arc(myRadius: CGFloat, myStartAngle: CGFloat, myEndAngle: CGFloat) { // This is the pie chart segment context?.setFillColor(phenotypeColor.cgColor) context?.move(to: center) context?.addArc(center: center, radius: finalRadius, startAngle: myStartAngle, endAngle: myEndAngle, clockwise: true) context?.fillPath() (…) let gradientLayer = CAGradientLayer() gradientLayer.frame = self.bounds gradientLayer.colors = [UIColor.red, UIColor.blue] self.layer.addSublayer(gradientLayer) } 我没有看到屏幕上的任何渐变(只有白色的背景…)。 最后,我还试图在保存状态后clip上下文,但我不确定是否剪辑了任何东西,因为我没有看到任何渐变(无论是在整个视图还是在片段上)。 […]

我如何添加跨越两个视图的渐变?

我知道该怎么做(1)但我该怎么做(2)? UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 50)]; CAGradientLayer *gradient = [CAGradientLayer layer]; gradient.frame = view.bounds; gradient.colors = @[(id)[UIColor blueColor].CGColor, (id)[UIColor redColor].CGColor]; [view.layer insertSublayer:gradient atIndex:0];

ios – 透明的径向梯度层面具

我使用CAGradientLayer作为图像的图层。 我使用这个代码: UIImage *image = [UIImage imageNamed:@"perfect.jpg"]; [testImage setImage:image]; CAGradientLayer *myLayer = [CAGradientLayer layer]; myLayer.anchorPoint = CGPointZero; //starts in bottom left myLayer.startPoint = CGPointMake(0.0f,0.5f); //ends in top right myLayer.endPoint = CGPointMake(0.5f, 0.0f); UIColor *outerColor = [UIColor colorWithWhite:1.0 alpha:0.0]; UIColor *innerColor = [UIColor colorWithWhite:1.0 alpha:1.0]; //an array of colors that dictatates the gradient(s) myLayer.colors = @[(id)outerColor.CGColor, […]

UIView图层的子图层在每次出现视图时显示不同/随机

我有一个简单的自定义CALayer在我的UIView上创build一个叠加渐变效果。 这里是代码: class GradientLayer: CALayer { var locations: [CGFloat]? var origin: CGPoint? var radius: CGFloat? var color: CGColor? convenience init(view: UIView, locations: [CGFloat]?, origin: CGPoint?, radius: CGFloat?, color: UIColor?) { self.init() self.locations = locations self.origin = origin self.radius = radius self.color = color?.CGColor self.frame = view.bounds } override func drawInContext(ctx: CGContext) { super.drawInContext(ctx) guard let […]

如何在iOS中使用CAGradientLayer在UITableViewCell中设置多个渐变颜色?

我想设置多个渐变颜色,每行将具有独特的渐变颜色,如下图所示: 我想实现的是第一个图像,我能实现的是第二个 我写的代码是我能够实现的 BackgroundLayer.h +(CAGradientLayer *)CustomHorBlack; BackgroundLayer.m + (CAGradientLayer*) CustomHorBlack { UIColor *colorOne = [UIColor colorWithRed:(0.0) green:(0.0 ) blue:(0.0) alpha:0.1]; UIColor *colorTwo = [UIColor colorWithRed:(0.0) green:(0.0 ) blue:(0.0) alpha:0.2]; UIColor *colorThree = [UIColor colorWithRed:(0.0) green:(0.0 ) blue:(0.0) alpha:0.3]; UIColor *colorFour = [UIColor colorWithRed:(0.0) green:(0.0 ) blue:(0.0) alpha:0.4]; UIColor *colorFive = [UIColor colorWithRed:(0.0) green:(0.0 ) blue:(0.0) […]

如何在iOS中使用弧形边缘绘制弧形?

在我的应用程序之一,我想绘制一个带圆angular的渐变弧。 像下面的图片 这是我迄今为止使用下面的代码所做的。 -(void)startArc { UIBezierPath *roundedArc = [self arcWithRoundedCornerAt:centerPoint startAngle:DEGREES_TO_RADIANS(-90) endAngle:DEGREES_TO_RADIANS(90) innerRadius:width-20 outerRadius:width cornerRadius:0]; CAShapeLayer *mask = [CAShapeLayer new]; [mask setPath:roundedArc.CGPath]; [mask setFrame:_outerView.bounds]; [mask setShouldRasterize:YES]; [mask setRasterizationScale:[UIScreen mainScreen].scale]; CAGradientLayer *gradient = [CAGradientLayer new]; [gradient setFrame:_outerView.bounds]; // [gradient setColors:[NSArray arrayWithObjects:(id)[[UIColor colorWithRed:0.86 green:0.91 blue:0.96 alpha:1.0f] CGColor],(id)[[UIColor colorWithRed:0.98 green:0.99 blue:0.99 alpha:1.0f] CGColor], nil]]; [gradient setColors:[NSArray arrayWithObjects:(id)[UIColor colorWithRed:0.19 […]

CAGradientLayer不工作

我创build了一个新的项目。 我在ViewController.m链接QuartzCore.framework并导入了<QuartzCore/QuartzCore.h> 。 这里是代码。 – (void)viewDidLoad { [super viewDidLoad]; NSLog(@"view height %f", self.view.frame.size.height); // returns 667 on iPhone 6 NSLog(@"view width %f", self.view.frame.size.width); // returns 375 on iPhone 6 NSLog(@"layers count %lu", self.view.layer.sublayers.count); // returns 2 // Gradient UIColor *colorOne = [UIColor blueColor]; UIColor *colorTwo = [UIColor greenColor]; NSArray *colorArray = @[colorOne, colorTwo]; NSNumber *locationOne […]

循环CAGradientLayer面具 – iOS

我在我的图片上使用CAGradientLayer 。 我使用这个代码来做到这一点: UIImage *image = [UIImage imageNamed:@"perfect.jpg"]; [testImage setImage:image]; CAGradientLayer *myLayer = [CAGradientLayer layer]; myLayer.anchorPoint = CGPointZero; //starts in bottom left myLayer.startPoint = CGPointMake(1.0f,1.0f); //ends in top right myLayer.endPoint = CGPointMake(1.0f, 0.0f); UIColor *outerColor = [UIColor colorWithWhite:1.0 alpha:0.0]; UIColor *innerColor = [UIColor colorWithWhite:1.0 alpha:1.0]; //an array of colors that dictatates the gradient(s) myLayer.colors = […]