在UIView上画梯度,在iOS9上不工作[英] Drawing gradient on UIView not working with iOS 9

本文是小编为大家收集整理的关于在UIView上画梯度,在iOS9上不工作的处理方法,想解了在UIView上画梯度,在iOS9上不工作的问题怎么解决?在UIView上画梯度,在iOS9上不工作问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我正在尝试在 iOS 9 的视图控制器的背景视图上绘制渐变,但我不知道为什么,它不起作用

这是我的方法,它是从 viewDidLoad 调用的

- (void)drawGradient
{
  CAGradientLayer *gradient = [CAGradientLayer layer];
  gradient.frame = self.view.bounds;

  gradient.colors = @[[UIColor greenColor], [UIColor redColor]];
  gradient.locations = @[@0.0, @1.0];

  [self.view.layer insertSublayer:gradient atIndex:0];
}

但是没有任何反应,也没有出现渐变.我做错了什么?

推荐答案

感谢Larme的评论,我发现了自己的错误.

代替

gradient.colors = @[[UIColor greenColor], [UIColor redColor]];

这是正确的

gradient.colors = @[(id)[UIColor greenColor].CGColor, (id)[UIColor redColor].CGColor];

因为 gradient.colors 需要 CGColorRef 的 NSArray.为了创建 NSArray,还需要 (id) 演员表.

本文地址:https://www.itbaoku.cn/post/924362.html