我在UIView的子視圖中使用漸變,在從某些應用切換回應用後,漸變變爲黑色。不知道爲什麼,如果有人知道這件事,請幫我在這裏。漸變變成黑色
此外,我沒有以編程方式繼承它,直接把它放在故事板本身(CustomGradientBlueView)的UIView類中。這可能是一個問題。? 這是我使用了漸變的代碼 - >
import UIKit
class CustomGradientBlueView: UIView {
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override init(frame: CGRect) {
super.init(frame: frame)
}
override func drawRect(rect: CGRect) {
let context = UIGraphicsGetCurrentContext()
// colour declarations
let gradientColor1 = UIColor(red: 0.361, green: 0.145, blue: 0.553, alpha: 1.000)
let gradientColor2 = UIColor(red: 0.263, green: 0.537, blue: 0.635, alpha: 1.000)
// gradient decalarations
let gradient = CGGradientCreateWithColors(CGColorSpaceCreateDeviceRGB(), [gradientColor1.CGColor,gradientColor2.CGColor], [0,1])
//rectangle drawing
var screen = UIScreen.mainScreen().bounds.size
let rectanglePath = UIBezierPath(rect: CGRectMake(0,0, screen.width, screen.height))
CGContextSaveGState(context)
rectanglePath.addClip()
CGContextDrawLinearGradient(context, gradient, CGPointMake(0,0), CGPointMake(screen.width, screen.height), 0)
}
}
爲什麼不使用CAGradientLayer? –
@MertBuran你能告訴我如何使用CAGradientLayer解決這個問題。有什麼區別。? –
「通過從某些應用切換回應用後,漸變變爲黑色」您能證明,當您這樣做時,會調用'drawRect:'嗎? – matt