我想让我的UIView背景颜色如下图所示
当我按下按钮,视图的背景色将变成像上面。我是谷歌搜索到很多,但没有找到一个方法。你能帮我吗?
rvpgvaaj1#
可以使用CALayer执行此操作。1.创建一个CAGradientLayer。2.设置层的颜色属性为彩虹颜色。3.根据您的要求设置startPoint和层的endPoint。4.创建一个CAShapeLayer(用于形状)并将其设置为渐变层的蒙版。好好享受吧!!
abithluo2#
要画出这样的东西,你需要使用核心图形。核心图形提供了渐变功能,可以使用。链接:http://www.raywenderlich.com/32925/core-graphics-tutorial-shadows-and-glosshttp://www.thinkandbuild.it/playing-around-with-core-graphics-core-animation-and-touch-events-part-1/
de90aj5v3#
步骤1:创建ENUM(用于水平和垂直选择)第二步:创建一个UIView的扩展,并将其应用到任意uiView中。示例:
enum GradientColorDirection { case vertical case horizontal }
extension UIView { func createGradient(opacity: Float = 1, direction: GradientColorDirection = .vertical) { let colors: [UIColor] = [UIColor.red, UIColor.yellow, UIColor.green, UIColor.systemBlue, UIColor.blue, UIColor.systemPink, UIColor.red] let gradientLayer = CAGradientLayer() gradientLayer.opacity = opacity gradientLayer.colors = colors.map { $0.cgColor } if case .horizontal = direction { gradientLayer.startPoint = CGPoint(x: 0.0, y: 0.0) gradientLayer.endPoint = CGPoint(x: 1.0, y: 0.0) } gradientLayer.bounds = self.bounds gradientLayer.anchorPoint = CGPoint.zero self.layer.addSublayer(gradientLayer) } }
用法:
let gradientView: UIView gradientView.createGradient()
3条答案
按热度按时间rvpgvaaj1#
可以使用CALayer执行此操作。
1.创建一个CAGradientLayer。
2.设置层的颜色属性为彩虹颜色。
3.根据您的要求设置startPoint和层的endPoint。
4.创建一个CAShapeLayer(用于形状)并将其设置为渐变层的蒙版。
好好享受吧!!
abithluo2#
要画出这样的东西,你需要使用核心图形。核心图形提供了渐变功能,可以使用。
链接:http://www.raywenderlich.com/32925/core-graphics-tutorial-shadows-and-gloss
http://www.thinkandbuild.it/playing-around-with-core-graphics-core-animation-and-touch-events-part-1/
de90aj5v3#
步骤1:创建ENUM(用于水平和垂直选择)
第二步:创建一个UIView的扩展,并将其应用到任意uiView中。
示例:
用法: