ios - 如何在 View Controller 的多个 View 中添加多种渐变颜色

标签 ios swift cagradientlayer

我使用下面的代码来实现渐变颜色。但是当我使用该代码时,它会为整个 View Controller 着色。它还涵盖了其他内容,例如文本字段、标签等。我想在 View Controller 中使用具有多种渐变颜色的多个 View 。假设我在 View Controller 中有三个 View ,并且我想在三个不同的 View 中使用三种不同的渐变颜色。标签和文本字段等内容将显示在渐变颜色上。

这是我的代码:

func setBackground_view() {
    let gradientLayer = CAGradientLayer()
    let colorTop =  UIColor(red: 44/255.0, green: 156/255.0, blue: 56/255.0, alpha: 1.0).cgColor
    let colorBottom = UIColor(red: 155/255.0, green: 180/255.0, blue: 23/255.0, alpha: 1.0).cgColor

    gradientLayer.colors = [ colorTop, colorBottom]
    gradientLayer.startPoint = CGPoint(x: 1.0, y: 0.5)
    gradientLayer.endPoint = CGPoint(x: 0.0, y: 1.0)
    gradientLayer.frame = self.view.bounds
    self.view.layer.addSublayer(gradientLayer)
    self.view.layer.insertSublayer(gradientLayer, at: 0)
    view.layer.addSublayer(gradientLayer)
}

最佳答案

您在示例中所做的是将渐变应用于 self.view,它本质上是整个 ViewController 的 Root View 。不仅如此,您还在 self.view多次应用相同的渐变。

您想要的是将渐变单独应用于每个元素,而不是 self.view 本身。

假设您有一个 UITextfield,然后只需像之前那样应用渐变,而是直接将其应用到所需的对象上。

textField.layer.insertSublayer(gradientLayer, at: 0)
anyOtherView.layer.insertSublayer(differentGradient, at: 0)

等等等等。

注意: 请记住将不同的渐变应用于相应的 View ,否则所有渐变将是相同的。

关于ios - 如何在 View Controller 的多个 View 中添加多种渐变颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49717126/

相关文章:

ios - 重新调整布局大小后,如何将渐变层的大小放置在 UITextField 后面,匹配 UITextField 大小?

ios - 在 UIView 上使用 CAGradientLayer 绘制渐变不起作用

ios - 如何在后台为 UIButton 设置渐变颜色?

ios - NSString 有一些属性值 用 & 符号如何获取该属性值

iphone - 如何在使用 UIPickerView 时禁用 View

ios - iOS 中消耗品和自动可再生 IAP 面临的问题

ios - 使用 SwiftyJSON 的 NSDictionary 到 json 字符串到 json 对象

ios - Swift 函数声明中的预期标识符

ios - 准备 segue 函数不加载新值

ios - Swift 5 安装测试真实设备时出现错误