【发布时间】:2018-04-02 10:19:26
【问题描述】:
我安排了 6 个自定义 uiview。我也尝试过使用各种技术应用渐变。
如何调用函数或如何为具有不同 cgcolor 代码的多个视图应用渐变。
func onebg(){
applyGradient(color_1: UIColor(red: 218.0/255.0, green: 52.0/255.0, blue: 204.0/255.0, alpha: 1.0).cgColor, color_2: UIColor(red: 149.0/255.0, green: 39.0/255.0, blue: 137.0/255.0, alpha: 1.0).cgColor, view: calendarView)
}
func twobg(){
applyGradient(color_1: UIColor(red: 104.0/255.0, green: 220.0/255.0, blue: 108.0/255.0, alpha: 1.0).cgColor, color_2: UIColor(red: 28.0/255.0, green: 170.0/255.0, blue: 87.0/255.0, alpha: 1.0).cgColor, view: classroomView)
}
func threebg(){
applyGradient(color_1: UIColor(red: 0.0/255.0, green: 144.0/255.0, blue: 214.0/255.0, alpha: 1.0).cgColor, color_2: UIColor(red: 34.0/255.0, green: 66.0/255.0, blue: 138.0/255.0, alpha: 1.0).cgColor, view: appointmentView)
}
I have called this 6 methods like, onebg() twobg() from viewdidload(). But it is not applying and most importantly what i am getting is , the gradient color is applied only for last view.
func applyGradient(color_1 : CGColor , color_2: CGColor , view : UIView) {
gradientLayer.frame = view.bounds
let color1 = color_1
let color2 = color_2
gradientLayer.colors = [color1, color2]
gradientLayer.locations = [0.0, 0.75, 0.25, 1.0]
view.layer.insertSublayer(gradientLayer, at: 0)
}
这是我要求应用的方法,通过为渐变添加插入子层。请帮助。
【问题讨论】:
-
在viewDidLoad中添加代码
-
已经尝试过了,但是渐变只应用于最后一个视图,这也不是正确的方式。
-
我的意思是添加您的完整尝试
-
我尝试过的可能性: 1. 将 onebg(), twobg()... 放在视图中确实加载了。 2.将onebg()、twobg()放在一个单独的方法中,在viewdidload()中调用collection方法。 3. 直接从 viewdidload() 应用渐变。任何其他选择。
标签: ios swift uiview cagradientlayer