如何使顶部图像不透明,从而使背景图像不显示?

时间:2019-04-11 21:19:11

标签: ios swift uiimageview uiimage overlay

我有一个UIImage视图,然后有一个叠加层,然后是另一个UIImage视图。我需要顶部的UIImageView根本不透明。我不想看到任何背景图片。

我尝试设置Alpha,尝试与Kingfisher一起使用Blend Processer,尝试将png转换为jpg,尝试将一个子视图移到另一个视图,并尝试更改图像的背景颜色,当我阅读其他内容时,我尝试将顶部图片设置为不透明而不是不透明,所以我尝试了很多。

 clientProfileImg.borderWidth = 2.0
 clientProfileImg.borderColor = UIColor.white
 clientProfileImg.isUserInteractionEnabled = false
 clientBackgroundProfileImg.isUserInteractionEnabled = false
 view.bringSubview(toFront: clientProfileImg)
 view.sendSubview(toBack: clientBackgroundProfileImg)
 clientProfileImg.backgroundColor = UIColor.black

 clientProfileImg.alpha = 1.0

  guard let profilePic = client?.profilePhoto else { print("No profile pic"); return }
  let resource = ImageResource(downloadURL: URL(string: profilePic)!, cacheKey: profilePic)
  // Blend (iOS)
  // let processor = BlendImageProcessor(blendMode: .sourceAtop, alpha: 1.0, backgroundColor: .black)
        // Set the image to Kingfisher which caches it
  DispatchQueue.main.async {
      self.clientProfileImg.kf.setImage(with: resource, placeholder: #imageLiteral(resourceName: "user-gray"), options: [.forceRefresh, .cacheSerializer(FormatIndicatedCacheSerializer.jpeg)])
      self.clientBackgroundProfileImg.kf.setImage(with: resource, options: [.forceRefresh,
                                                      .cacheSerializer(FormatIndicatedCacheSerializer.jpeg)] 

  }

这是我看到的: what is happening

这就是我想要的: what i want

2 个答案:

答案 0 :(得分:0)

尝试使用该方法

withRenderingMode(_:)

三个渲染模式值。

{{1}}

答案 1 :(得分:0)

我解决了这个问题,实际上在情节提要中它们之间有一个叠加图像。删除它并在运行时以编程方式添加它可以解决此问题