如何使用 Swift 3 或 Hue 将 CAGradientLayer 转换为 UIColor?
Posted
技术标签:
【中文标题】如何使用 Swift 3 或 Hue 将 CAGradientLayer 转换为 UIColor?【英文标题】:How to Convert a CAGradientLayer to a UIColor with Swift 3 or Hue? 【发布时间】:2016-10-29 03:55:17 【问题描述】:我尝试使用 Hue 将背景颜色设为渐变色 (https://github.com/hyperoslo/Hue),但我收到错误消息,提示 backgroundColor 仅适用于 UIColor。但是是否可以将 CAGradientLayer 更改为 UIColor。 (我更喜欢在 Hue 框架中,但在苹果框架中也可以。)
【问题讨论】:
【参考方案1】:在您链接到的色调页面上有一个示例:
lazy var gradient: CAGradientLayer = [
UIColor(hex: "#FD4340"),
UIColor(hex: "#CE2BAE")
].gradient gradient in
gradient.speed = 0
gradient.timeOffset = 0
return gradient
您需要做的就是将其作为子图层添加到您的视图中。
view.layer.addSublayer(gradient)
【讨论】:
可以把它变成 UIColor 吗?还是让它针对特定元素? UIColor 不能是渐变色;除了 UIColor(patternImage image: UIImage) 的奇怪情况外,它始终是单一颜色。我想您可以将渐变渲染为图像并将其用作图案图像颜色。将 CAGradientLayer 添加到现有视图要容易得多。以上是关于如何使用 Swift 3 或 Hue 将 CAGradientLayer 转换为 UIColor?的主要内容,如果未能解决你的问题,请参考以下文章