我只是简单地想应用2 UIColors渐变,这就是为什么我写下面的代码。
class Constants: NSObject {
class func applyGradient(localView:UIView, color1:UIColor, color2:UIColor) {
let gradient: CAGradientLayer = CAGradientLayer()
gradient.frame = localView.bounds
gradient.colors = [color1.CGColor, color2.CGColor]
gradient.startPoint = CGPoint(x: 0,y: 0)
gradient.endPoint = CGPoint(x: 0,y: 1)
localView.layer.insertSublayer(gradient, atIndex: 0)
localView.layer.masksToBounds = true
}
}
并通过以下代码在UIViewController的viewDidLoad中应用。
Constants.applyGradient(viewContactDetail, color1: gradientColor1, color2: gradientColor2)
Constants.applyGradient(viewDiscountDetail, color1: gradientColor1, color2: gradientColor2)
Constants.applyGradient(viewTermsCondDetail, color1: gradientColor1, color2: gradientColor2)
Constants.applyGradient(viewDiscountAvailDetail, color1: gradientColor1, color2: gradientColor2)
这是我得到的结果
您可以看到,渐变未正确应用于特定视图。
我不知道我的代码有什么问题。
**EDIT:**这是分层视图。
3条答案
按热度按时间trnvg8h31#
试试这个....希望对你有帮助
deyfvvtc2#
你也可以试试这个简单的代码,你可以给予渐变层的框架,也可以给颜色
只需将层添加到视图中
在Image你可以看到我添加了渐变层按钮,所以你可以做同样的添加到您的视图或任何其他控件
m2xkgtsf3#
在设置帧之前调用
layoutIfNeeded()
对我来说很有效。如果在你的情况下,如果不想调用这个,试着通过设置一个bool来使用willDisplayCell
,这个bool只会在第一次和你的帧准备好的时候应用。