ios - 如何将 Swift 中的白色图像着色为另一种颜色?

标签 ios swift uiimageview uiimage mask

我想在运行时将白色图标着色为另一种颜色,我尝试使用方法 taken from here ,但没有成功:

    func maskImageView() {
    var maskImageSize = CGSizeMake(self.downloadImageView.frame.width, self.downloadImageView.frame.height)
    UIGraphicsBeginImageContextWithOptions(maskImageSize, false, 0.0)

    var color = UIColor(white: 1.0, alpha: 1.0)
    color.setFill()

    var rect = CGRectMake(0, 0, self.downloadImageView.frame.width, self.downloadImageView.frame.height)
    UIRectFill(rect)

    color = BrandColors.BRAND_FIRST_COLOR
    color.setFill()

    rect = CGRectMake((self.downloadImageView.frame.width/2)-100, (self.downloadImageView.frame.height/2)-100, 200, 200)
    UIRectFill(rect)

    var maskImage = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

    var maskLayer = CALayer()
    maskLayer.frame = CGRectMake(0, 0, self.downloadImageView.bounds.width, self.downloadImageView.bounds.height)
    maskLayer.contents = maskImage.CGImage
    maskLayer.contentsRect = CGRectMake(0, 0, self.downloadImageView.bounds.width, self.downloadImageView.bounds.height)
    self.downloadImageView.layer.mask = maskLayer;
}

我真的搞不懂这个遮蔽物是如何工作的。我做错了什么?

最佳答案

我能够通过以下方法完成此任务:

func maskDownloadImageView() {
    downloadImageView.image = downloadImageView.image?.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)
    downloadImageView.tintColor = BrandColors.BRAND_FIRST_COLOR  
}

没有必要使用掩码。

关于ios - 如何将 Swift 中的白色图像着色为另一种颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31850377/

相关文章:

ios - 使用 iOS 的 Google Analytics,数据不发送

ios - setImageWith Url 完成 block swift ios

ios - Expo 应用程序 IPA 在我的 iPhone 上无法运行

iphone - 如何为充满空气的气球制作动画

javascript - 使用 JavascriptCore 和 JSContext 从 javascript 调用 native Swift 代码

swift - 如果数据嵌套在 Swift 中,我如何解码响应数据

ios - 使用相同的 UIImage 绘制多个 UIImageView

swift - 带有自定义边框的 UIImageView

android - phonegap 应用程序未在方向更改时更新样式

ios - 在 iOS 中使用正则表达式进行验证