如何使用Swift在iOS中的图像上实现黑色渐变

时间:2018-10-20 06:02:31

标签: ios swift colors gradient

我正在一个iOS项目中,在明亮的图像上有白色标签。问题是对于白色标签未显示的明亮图像。这是一个示例:

  1. 标签未显示:https://imgur.com/hKtejHn
  2. 标签显示:https://imgur.com/Ef5qJAh

我认为,如果我在所有图像上添加黑色渐变,则白色标签将可见。谁能帮助我解决如何在Swift中实现解决方案?

谢谢!

2 个答案:

答案 0 :(得分:1)

如果您想在imageView上添加渐变,则只需在CAGradientLayer上实现imageView.layer

尝试为您自己的自定义外观更改一些值。但是下面的代码差不多了。

let gradient = CAGradientLayer()
gradientLayer.frame = imageView.frame
let colors = [
    UIColor(red: 0, green: 0, blue: 0, alpha: 1).cgColor,
    UIColor(red: 0, green: 0, blue: 0, alpha: 0).cgColor
]

gradientLayer.startPoint = CGPoint(x: 0.1, y: 0.5)
gradientLayer.endPoint = CGPoint(x: 0.9, y: 0.5)
gradientLayer.colors = colors

imageView.layer.addSublayer(gradientLayer)

您可以更改颜色,添加颜色,更改起点/终点。您可以在YouTube或Google上找到许多不同的CAGradientLayer指南。

答案 1 :(得分:1)

尝试:

extension UILabel {
    func lblShadow(color: UIColor , radius: CGFloat, opacity: Float){
        self.textColor = color
        self.layer.masksToBounds = false
        self.layer.shadowRadius = radius
        self.layer.shadowOpacity = opacity

        self.layer.shadowOffset = CGSize(width: 1, height: 1)
        self.layer.shouldRasterize = true
        self.layer.rasterizationScale = UIScreen.main.scale
    }
}

用法:

label.lblShadow(color: UIColor.white, radius: 3, opacity: 0.75)