Swift 从黑色到全透明的渐变
Swift gradient from black to fully transparent
我正在尝试使用 swift 应用 CAGradientLayer,我希望它从黑色逐渐变为透明。
我认为任何带有 alpha: 0
的颜色都会呈现相同的 "transparent" 颜色。事实并非如此。白配alpha: 0
还是有点白,红配alpha: 0
还是有点红...
我不想要任何色调,只想要透明的。黑色不那么黑到没有颜色的地步,例如您可以完全看到它下面的视图。
gradientLayer.colors = [UIColor(hex: 0x000000, alpha: 0.4).cgColor,
UIColor(hex: 0x6D6D6D, alpha: 0.3).cgColor,
UIColor.white.withAlphaComponent(0.0).cgColor]
gradientLayer.locations = [0.0, 0.3, 1.0]
如果我将图层应用到灰色图片上,很容易看出它不是透明的而是白色的:
编辑 1:
gradientLayer.frame = self.gradientView.bounds
gradientLayer.masksToBounds = true
gradientLayer.colors = [UIColor.black.withAlphaComponent(1.0).cgColor, UIColor.black.withAlphaComponent(0.0).cgColor]
gradientLayer.locations = [0.0, 1.0]
gradientLayer.startPoint = CGPoint(x: 0.0, y: 0.0)
gradientLayer.endPoint = CGPoint(x: 0.0, y: 1.0)
self.gradientView.layer.addSublayer(gradientLayer)
输出:
你可以试试这个:
gradientLayer.colors = [UIColor.black.withAlphaComponent(1.0).cgColor,
UIColor.black.withAlphaComponent(0.0).cgColor]
//gradientLayer.locations = [0.0, 1.0]
gradientLayer.frame = myView.bound
gradientLayer.startPoint = CGPoint(x: 1.0, y: 0.0)
gradientLayer.endPoint = CGPoint(x: 1.0, y: 1.0)
myView.layer.insertSublayer(gradientLayer, at: 0)
它对我有效。
我正在尝试使用 swift 应用 CAGradientLayer,我希望它从黑色逐渐变为透明。
我认为任何带有 alpha: 0
的颜色都会呈现相同的 "transparent" 颜色。事实并非如此。白配alpha: 0
还是有点白,红配alpha: 0
还是有点红...
我不想要任何色调,只想要透明的。黑色不那么黑到没有颜色的地步,例如您可以完全看到它下面的视图。
gradientLayer.colors = [UIColor(hex: 0x000000, alpha: 0.4).cgColor,
UIColor(hex: 0x6D6D6D, alpha: 0.3).cgColor,
UIColor.white.withAlphaComponent(0.0).cgColor]
gradientLayer.locations = [0.0, 0.3, 1.0]
如果我将图层应用到灰色图片上,很容易看出它不是透明的而是白色的:
编辑 1:
gradientLayer.frame = self.gradientView.bounds
gradientLayer.masksToBounds = true
gradientLayer.colors = [UIColor.black.withAlphaComponent(1.0).cgColor, UIColor.black.withAlphaComponent(0.0).cgColor]
gradientLayer.locations = [0.0, 1.0]
gradientLayer.startPoint = CGPoint(x: 0.0, y: 0.0)
gradientLayer.endPoint = CGPoint(x: 0.0, y: 1.0)
self.gradientView.layer.addSublayer(gradientLayer)
输出:
你可以试试这个:
gradientLayer.colors = [UIColor.black.withAlphaComponent(1.0).cgColor,
UIColor.black.withAlphaComponent(0.0).cgColor]
//gradientLayer.locations = [0.0, 1.0]
gradientLayer.frame = myView.bound
gradientLayer.startPoint = CGPoint(x: 1.0, y: 0.0)
gradientLayer.endPoint = CGPoint(x: 1.0, y: 1.0)
myView.layer.insertSublayer(gradientLayer, at: 0)
它对我有效。