Tag: cagradientlayer

雨燕:彩虹色圈

嗨,我试图写在迅速,看起来像这样的颜色select器。 但到目前为止,我pipe理这一点。 画圆很容易,编码… fileprivate func setupScene(){ let circlePath: UIBezierPath = UIBezierPath(arcCenter: CGPoint(x: self.wheelView.frame.width/2, y: self.wheelView.frame.height/2), radius: CGFloat(self.wheelView.frame.height/2), startAngle: CGFloat(0), endAngle:CGFloat(Double.pi * 2), clockwise: true) let shapeLayer = CAShapeLayer() shapeLayer.path = circlePath.cgPath //color inside circle shapeLayer.fillColor = UIColor.clear.cgColor //colored border of circle shapeLayer.strokeColor = UIColor.purple.cgColor //width size of border shapeLayer.lineWidth = 10 wheelView.layer.addSublayer(shapeLayer) } @IBOutlet var […]

iOS UITableView:使用CAGradientLayer将背景颜色指定为渐变

我刚开始玩Xcode 4.3中的主 – 细节视图模板,我试图改变主的背景颜色,并将其设置为颜色渐变。 这是我试过的: Colors.m #import "Colors.h" @implementation Colors + (UIColor *) navigationMenuGradientTop { return [UIColor colorWithRed:213.0f/255.0f green:91.0f/255.0f blue:92.0f/255.0f alpha:1.0f]; } + (UIColor *) navigationMenuGradientBottom { return [UIColor colorWithRed:188.0f/255.0f green:0.0f/255.0f blue:1.0f/255.0f alpha:1.0f]; } + (CAGradientLayer *) navigationMenuGradient { NSArray *colors = [NSArray arrayWithObjects:(id)self.navigationMenuGradientTop, self.navigationMenuGradientBottom, nil]; CAGradientLayer *gradientLayer = [CAGradientLayer layer]; gradientLayer.colors = colors; return […]

如何使用CAGradientLayer绘制渐变色轮?

我从这些链接中得到了一些参考 – 色轮背后的algorithm是什么? 色轮后面的math 基本的配色scheme 如何用渐变色填充贝塞尔path 我已经经历了“HSV色彩空间”的概念。 但是我想在CAGradientLayer的帮助下使用RGB绘制一个色轮。 这是通过使用简单的RGB颜色数组和UIBezierPath制作色轮的代码片段 – func drawColorWheel() { context?.saveGState() range = CGFloat(100.00 / CGFloat(colorArray.count)) for k in 0 ..< colorArray.count { drawSlice(startPercent: CGFloat(k) * range, endPercent: CGFloat(CGFloat(k + 1) * range), color: colorArray.object(at: k) as! UIColor) } context?.restoreGState() } func drawSlice(startPercent: CGFloat, endPercent: CGFloat, color: UIColor) { let startAngle = […]

带有GradientLayer的UIButton模糊图像并使渐变变暗

我有一个UIButton在这里,我想有一个渐变作为背景下的背景(具有透明背景的符号),但我面临着两个不同的问题。 第一个CAGradientLayer似乎叠加在图像的顶部,不pipe我怎么尝试添加它,完全模糊了图像。 其次梯度本身似乎变得很暗,就像button被禁用,事实并非如此。 这是我的代码: self.backButton = [[UIButton alloc] initWithFrame:CGRectMake(15, 35, 28, 28)]; [backButton addTarget:self action:@selector(goBack) forControlEvents:UIControlEventTouchUpInside]; [backButton setBackgroundColor:[UIColor clearColor]]; CAGradientLayer *buttonGradient = [CAGradientLayer layer]; buttonGradient.frame = backButton.bounds; buttonGradient.colors = [NSArray arrayWithObjects: (id)[[UIColor colorWithRed:.0 green:.166 blue:.255 alpha:1] CGColor], (id)[[UIColor colorWithRed:.0 green:.113 blue:.255 alpha:1] CGColor], nil]; [buttonGradient setCornerRadius:backButton.frame.size.width / 2]; [backButton.layer insertSublayer:buttonGradient atIndex:0]; [backButton setImage:[UIImage imageNamed:@"backarrow.png"] forState:UIControlStateNormal]; […]

渐变animation – 慢下来,加快速度

我为CAGradientLayer了一个animation,类似于苹果公司在iPhone主屏幕上的“幻灯片解锁”animation。 不过,我的animation有点不同,因为它在某些方面减速并加快速度。 我到目前为止的代码是animation渐变和工作,但我怎么会得到它减速/加快在不同的点? class AnimatedMaskLabel: UIView { let gradientLayer: CAGradientLayer = { let gradientLayer = CAGradientLayer() // Configure the gradient here gradientLayer.startPoint = CGPoint(x: 0.0, y: 0.5) gradientLayer.endPoint = CGPoint(x: 1.0, y: 0.5) let colors = [ UIColor.black.cgColor, UIColor.white.cgColor, UIColor.black.cgColor ] gradientLayer.colors = colors let locations: [NSNumber] = [0.0, 0.5, 1.0] gradientLayer.locations = locations return […]

UILabel添加GradientLayer

向UILabel添加背景渐变我使用下面的代码。 在使用渐变之前,UILabel像这样出现。 现在,添加一个渐变我使用下面的代码。 CAGradientLayer *gradLayer=[CAGradientLayer layer]; gradLayer.frame=self.myView.layer.bounds; [gradLayer setColors:[NSArray arrayWithObjects:(id)([UIColor redColor].CGColor), (id)([UIColor cyanColor].CGColor),nil]]; gradLayer.endPoint=CGPointMake(1.0, 0.0); [self.myView.layer addSublayer:gradLayer]; UILabel然后如下,但没有文字。 我也尝试添加UILabel图层底部的图层,但没有成功。 [self.myView.layer insertSublayer:gradLayer atIndex:0];

animation只改变其他属性的图层属性?

想象一下CAGradientLayer 。 对.startPoint和.endPoint进行animation制作非常简单。 现在想象一个浮动的spinLike ,它只是简单地将它们同时设置 。 {所以,不要有两个不同的animation,你可以简单地为spinLikeanimation。 所以像.. class CustomGradientLayer: CAGradientLayer { @objc var spinLike: CGFloat = 0 { didSet { startPoint = CGPoint( … ) endPoint = CGPoint( … ) setNeedsDisplay() } } } animationspinLike … class Test: UIView { … g = CustomGradientLayer() a = CABasicAnimation(keyPath: "spinLike") … g.add(a, forKey: nil) … 但。 […]

旋转后如何调整CAGradientLayer的大小?

我正在添加一个CAGradientLayer到一个视图。 当视图自动resize时(例如旋转后),渐变图层不会resize。 可以将渐变设置为自动调整视图相同吗? 还要注意,我在视图中使用自动布局约束。 这是我正在做的事情: CAGradientLayer *gradientLayer = [CAGradientLayer layer]; gradientLayer.frame = CGRectMake(0.0, 0.0, frame.size.width, frame.size.height); gradientLayer.colors = [NSArray arrayWithObjects: (id)[[UIColor colorWithRed:255.0/255.0f green:255.0/255.0f blue:255.0/255.0f alpha:1.0f] CGColor], (id)[[UIColor colorWithRed:233.0/255.0f green:233.0/255.0f blue:233.0/255.0f alpha:1.0f] CGColor], nil]; [self.layer insertSublayer:gradientLayer atIndex:0];

iOS 7.0中的水平CAGradientLayer

在我的应用程序中,我使用一个CAGradientLayer来设置我的单元格的背景,用这种方法: retValue = [tableView dequeueReusableCellWithIdentifier:@"Cells" forIndexPath:indexPath]; UIView *bgColorView = [[UIView alloc] init]; bgColorView.backgroundColor = [UIColor blueColor]; bgColorView.layer.masksToBounds = YES; id startColor = (id)[[UIColor colorWithWhite:0.75 alpha:1] CGColor]; id endColor = (id)[[UIColor blueColor] CGColor]; CAGradientLayer* gradientLayer = [CAGradientLayer layer]; gradientLayer.frame = retValue.contentView.bounds; gradientLayer.colors = @[startColor,startColor,endColor,endColor]; gradientLayer.locations = @[[NSNumber numberWithFloat:0], [NSNumber numberWithFloat:0.95], [NSNumber numberWithFloat:0.95], [NSNumber numberWithFloat:1]]; [gradientLayer setStartPoint:CGPointMake(0,0.5)]; […]

如何将CAGradientLayer作为另一个CALayer的掩码?

我有一个观点,有CALayer。 当我创build一个CAGradientLayer并将其作为该视图的CALayer的掩码时,没有任何反应。 为什么? 在-initWithFrame:视图中我这样做: CAGradientLayer *gradient = [CAGradientLayer layer]; gradient.frame = self.bounds; gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor blackColor] CGColor], (id)[[UIColor whiteColor] CGColor], nil]; //[self.layer insertSublayer:gradient atIndex:0]; self.layer.mask = gradient; 如果我更换 self.layer.mask = gradient; 同 [self.layer insertSublayer:gradient atIndex:0]; 然后我看到渐变。 从黑色到白色。 有什么窍门?