【问题标题】:How to implement a black gradient on an image in iOS using swift如何使用swift在iOS中的图像上实现黑色渐变
【发布时间】:2026-01-27 03:40:01
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

    标签: ios swift colors gradient


    【解决方案1】:

    如果你想在 imageView 上添加渐变,那么你可以在 imageView.layer 上实现 CAGradientLayer

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

    let gradientLayer = 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-guides。

    【讨论】:

      【解决方案2】:

      试试这个:

      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)
      

      【讨论】:

        最近更新 更多