İOS ve WatchKit'te image tintColor'u nasıl değiştirebilirim


395

Sadece sol siyah kalp gibi UIImage tek bir renk (şeffaf arka plan) ile "theImageView" adlı bir UIImageView var. Bu görüntünün renk tonunu iOS 7 veya daha yeni sürümlerde, iOS 7+ Gezinme Çubuğu simgelerinde kullanılan renk tonu yöntemine göre programlı olarak nasıl değiştirebilirim?

Bu yöntem bir Apple Watch uygulaması için WatchKit'te de kullanılabilir mi?

resim açıklamasını buraya girin


4
Ne demek "a aşağıdaki kod yanlış", a UIImageile UIImageRenderingModeAlwaysTemplateayarlamak ve sonra UIImageVIew's ayarı tintColorişe yarar. (
kodumda

2
Bunun gibi
Alladinian

4
Cevabınızı gerçekten en iyi ve en modern olduğunu düşündüğüm için cevap bölümüne taşımalısınız.
Richard Venable

Keşke bu soruyu ikiye katlayabilirdim !!
Jacobo Koenig

Yanıtlar:


763

iOS
Bir iOS uygulaması için Swift 3, 4 veya 5'te:

theImageView.image = theImageView.image?.withRenderingMode(.alwaysTemplate)
theImageView.tintColor = UIColor.red

Swift 2 için:

theImageView.image = theImageView.image?.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)
theImageView.tintColor = UIColor.redColor()

Bu arada, modern Objective-C çözümü:

theImageView.image = [theImageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
[theImageView setTintColor:[UIColor redColor]];

Watchkit
Apple Watch uygulamaları için WatchKit'te, şablon görüntüsü için renk tonu ayarlayabilirsiniz .

  1. Görüntünüzü WatchKit Uygulamanızdaki bir Varlık Kataloğu'na eklemeniz ve görüntü kümesini Özellikler Denetçisi'nde Şablon Görüntüsü olarak oluşturulacak şekilde ayarlamanız gerekir. Bir iPhone uygulamasının aksine, şu anda WatchKit Uzantısında kodda şablon oluşturmayı ayarlayamazsınız.
  2. Uygulamanız için arayüz oluşturucuda WKInterfaceImage içinde kullanılacak görüntüyü ayarlayın
  3. WKInterfaceController içinde 'theImage' adlı WKInterfaceImage için bir IBOutlet oluşturun ...

Daha sonra Swift 3 veya 4'te renk tonu rengini ayarlamak için:

theImage.setTintColor(UIColor.red)

Hızlı 2:

theImage.setTintColor(UIColor.redColor())

Daha sonra Objective-C'de renk tonu rengini ayarlamak için:

[self.theImage setTintColor:[UIColor redColor]];

Bir şablon resmi kullanırsanız ve renk tonu rengi uygulamazsanız, WatchKit uygulamanız için Global Renk Tonu uygulanır. Genel Renk Tonu ayarlamadıysanız, theImageşablon görüntüsü olarak kullanıldığında varsayılan olarak açık mavi renklendirilir.


2
bu en iyi ve basit çözümdür.
Ankish Jain

4
imageWithRenderingMode çok yavaş. Film şeridi ve görüntü Varlıklarında. bu ikisini de değiştirebilirsiniz: Oluşturma Modunu Şablon Görüntüsüne Güncelleyin - bu daha iyi bir çözüm
Katerina

Mükemmel, şimdi kodunuza dayalı bu yöntemi kullanın: + (UIImageView ) tintImageView: (UIImageView *) imageView withColor: (UIColor ) renk {imageView.image = [imageView.image imageWithRenderingMode: UIImageRenderingModeAlwaysTemplate]; [imageView setTintColor: renk]; dönüş imageView; }
Josep Escobar

siyah görüntü ile daha iyi mi?
Bruno

1
@ Bruno görüntüsünün siyah olması gerekmez, hayır. Her renkle çalışır.
Duncan Babbage

121

İşte hile yapması gereken bir kategori

@interface UIImage(Overlay)
@end

@implementation UIImage(Overlay)

- (UIImage *)imageWithColor:(UIColor *)color1
{
        UIGraphicsBeginImageContextWithOptions(self.size, NO, self.scale);
        CGContextRef context = UIGraphicsGetCurrentContext();
        CGContextTranslateCTM(context, 0, self.size.height);
        CGContextScaleCTM(context, 1.0, -1.0);
        CGContextSetBlendMode(context, kCGBlendModeNormal);
        CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height);
        CGContextClipToMask(context, rect, self.CGImage);
        [color1 setFill];
        CGContextFillRect(context, rect);
        UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        return newImage;
}
@end

böylece yapardınız:

theImageView.image = [theImageView.image imageWithColor:[UIColor redColor]];

Bu çok geçerli cevap için teşekkürler, sanırım kodum baştan ok, kendi soruma cevap vermeli ve ne olursa olsun size +1 verdi ..
chewy

104

Bunu Swift'te bir extension.

Nasıl yaptığımı paylaşacağımı düşündüm:

extension UIImage {
    func imageWithColor(color1: UIColor) -> UIImage {
        UIGraphicsBeginImageContextWithOptions(self.size, false, self.scale)
        color1.setFill()

        let context = UIGraphicsGetCurrentContext() as CGContextRef
        CGContextTranslateCTM(context, 0, self.size.height)
        CGContextScaleCTM(context, 1.0, -1.0);
        CGContextSetBlendMode(context, CGBlendMode.Normal)

        let rect = CGRectMake(0, 0, self.size.width, self.size.height) as CGRect
        CGContextClipToMask(context, rect, self.CGImage)
        CGContextFillRect(context, rect)

        let newImage = UIGraphicsGetImageFromCurrentImageContext() as UIImage
        UIGraphicsEndImageContext()

        return newImage
    }
}

Kullanımı:

theImageView.image = theImageView.image.imageWithColor(UIColor.redColor())

Hızlı 4

extension UIImage {
    func imageWithColor(color1: UIColor) -> UIImage {
        UIGraphicsBeginImageContextWithOptions(self.size, false, self.scale)
        color1.setFill()

        let context = UIGraphicsGetCurrentContext()
        context?.translateBy(x: 0, y: self.size.height)
        context?.scaleBy(x: 1.0, y: -1.0)
        context?.setBlendMode(CGBlendMode.normal)

        let rect = CGRect(origin: .zero, size: CGSize(width: self.size.width, height: self.size.height))
        context?.clip(to: rect, mask: self.cgImage!)
        context?.fill(rect)

        let newImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()

        return newImage!
    }
}

Kullanımı:

theImageView.image = theImageView.image?.imageWithColor(color1: UIColor.red)


1
FYI color1.setFill(), yöntemdeki ilk satırın altına doğru hareket edene kadar bu benim için işe yaramadı UIGraphicsBeginImageContextWithOptions(self.size, false, self.scale).
Aaron

@Aaron Yorumunuza göre güncellendi. Teşekkürler.
Fulvio

7
Kullanmak @CeceXX CGBlendMode.Normalyerine
Adolfo

2
Harikasınız, ancak Swift 3
SimpuMind

1
@SimpiMind Bunun yerine Swift 4 sağladı.
fulvio

97

Film şeridi ve görüntü Varlıklarında. bu ikisini de değiştirebilirsiniz:

İşleme Modunu Şablon Görüntüsüne Güncelleyin

Görüntü Varlıklarında İşleme Modunu Şablon Görüntüsüne Güncelleme

Görünümlerde renk tonunu güncelleyin.

Görünümlerdeki Görünümlerde renk tonunu güncelleme


22
Bu cidden en kötü cevap!
brandonscript

1
Bu değeri film şeridinden ayarlamak benim için hiçbir zaman işe yaramaz. Her zaman imageView.tintColorkoddan kullanmak zorundayım .
Kamil Powałowski

3
@ KamilPowałowski benim için bu bazen işe yarıyor ... Neden emin değilim. Keşke neden her zaman işe yaramadığını bilsem. Sonunda kod ile yapıyorum
Jesus Rodriguez

2
Benim için, bu film şeridi yöntemi düğmeler üzerinde çalışıyor, ancak imageViews üzerinde çalışmıyor. Hala imageViews kodunda tintColor ayarlamak zorunda.
Derek Soike

2
Birisi hala neden IB'de çalışmadığını merak ederek başını kaşıyorsa, imageView'in Opakını Hayır olarak ayarlamayı deneyin
Bonan

40

Hızlı 4

Benzersiz renklerle görüntü için çalışan UIImage SVG / PDF tonunu değiştirin :

resim açıklamasını buraya girin resim açıklamasını buraya girin

import Foundation

// MARK: - UIImage extensions

public extension UIImage {

    //
    /// Tint Image
    ///
    /// - Parameter fillColor: UIColor
    /// - Returns: Image with tint color
    func tint(with fillColor: UIColor) -> UIImage? {
        let image = withRenderingMode(.alwaysTemplate)
        UIGraphicsBeginImageContextWithOptions(size, false, scale)
        fillColor.set()
        image.draw(in: CGRect(origin: .zero, size: size))

        guard let imageColored = UIGraphicsGetImageFromCurrentImageContext() else {
            return nil
        }

        UIGraphicsEndImageContext()
        return imageColored
    }
}

Benzersiz renkle görüntü için çalışan UIImageView renk tonunu değiştirin :

resim açıklamasını buraya girin resim açıklamasını buraya girin

let imageView = UIImageView(frame: CGRect(x: 50, y: 50, width: 50, height: 50))
imageView.image = UIImage(named: "hello.png")!.withRenderingMode(.alwaysTemplate)
imageView.tintColor = .yellow

Resim için UIImage'ın tonunu değiştirin , şunu kullanın:

resim açıklamasını buraya girin resim açıklamasını buraya girin

import Foundation

// MARK: - Extensions UIImage

public extension UIImage {

    /// Tint, Colorize image with given tint color
    /// This is similar to Photoshop's "Color" layer blend mode
    /// This is perfect for non-greyscale source images, and images that 
    /// have both highlights and shadows that should be preserved<br><br>
    /// white will stay white and black will stay black as the lightness of 
    /// the image is preserved
    ///
    /// - Parameter TintColor: Tint color
    /// - Returns:  Tinted image
    public func tintImage(with fillColor: UIColor) -> UIImage {

        return modifiedImage { context, rect in
            // draw black background - workaround to preserve color of partially transparent pixels
            context.setBlendMode(.normal)
            UIColor.black.setFill()
            context.fill(rect)

            // draw original image
            context.setBlendMode(.normal)
            context.draw(cgImage!, in: rect)

            // tint image (loosing alpha) - the luminosity of the original image is preserved
            context.setBlendMode(.color)
            fillColor.setFill()
            context.fill(rect)

            // mask by alpha values of original image
            context.setBlendMode(.destinationIn)
            context.draw(context.makeImage()!, in: rect)
        }
    }

    /// Modified Image Context, apply modification on image
    ///
    /// - Parameter draw: (CGContext, CGRect) -> ())
    /// - Returns:        UIImage
    fileprivate func modifiedImage(_ draw: (CGContext, CGRect) -> ()) -> UIImage {

        // using scale correctly preserves retina images
        UIGraphicsBeginImageContextWithOptions(size, false, scale)
        let context: CGContext! = UIGraphicsGetCurrentContext()
        assert(context != nil)

        // correctly rotate image
        context.translateBy(x: 0, y: size.height)
        context.scaleBy(x: 1.0, y: -1.0)

        let rect = CGRect(x: 0.0, y: 0.0, width: size.width, height: size.height)

        draw(context, rect)

        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return image!
    }
}

1
hey, hızlı bir şekilde yeniyim, ama burada bunun SVG görüntüleri için olduğunu söylediniz, ancak SVG'yi UIImage'a ayrıştırmanın bir yolunu bulamıyorum, bana yardımcı olabilir misiniz? ya da belki bir şekilde bunu SVG ile düzgün bir şekilde idare edebilirim. Teşekkürler!
Dumitru Rogojinaru

@DumitruRogojinaru, varlıktaki şablon görüntüsüyle SVG yazı tipini kullanıyor
YannSteph

Neden "işlev değiştirilmişGörüntü" üzerine tercüme ve ölçekleme yapmak gerekiyor?
Luca Davanzo

Swift 4 Güncellemesi
YannSteph

36

Birisi olmadan bir çözümü önemseyen varsa UIImageView:

// (Swift 3)
extension UIImage {
    func tint(with color: UIColor) -> UIImage {
        var image = withRenderingMode(.alwaysTemplate)
        UIGraphicsBeginImageContextWithOptions(size, false, scale)
        color.set()

        image.draw(in: CGRect(origin: .zero, size: size))
        image = UIGraphicsGetImageFromCurrentImageContext()!
        UIGraphicsEndImageContext()
        return image
    }
}

Vay, bunu bir saat + aradıktan sonra sihir gibi çalışıyor. Gerekenler: NSTextAttachment öğesinde simgenin orijinalinden farklı bir renkte simge ayarlamak. Bir UIImageView kullanmak ve tintColor değiştirmek için standart cevap burada çalışmıyor, çünkü NSTextAttachment UIImageView almaz.
marco

1
Bu, özellikle Swift 3 ile çalışan kod arayan herkes için şimdiye kadar bulduğum en iyi çözüm. Harika bir öneri!
shashwat

17

Swift ile

let commentImageView = UIImageView(frame: CGRectMake(100, 100, 100, 100))
commentImageView.image = UIImage(named: "myimage.png")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)
commentImageView.tintColor = UIColor.blackColor()
addSubview(commentImageView)

3
basitçe koyabilirsiniz .AlwaysTemplate.
Rui Peres

Evet, kodu kısaltır, ancak kodun netliğini azaltabilir gibi görünüyor. Bu yüzden nokta kısayolları hakkında emin değilim
Esqarrouth

POV'nuzu görüyorum, sadece bir alternatif.
Rui Peres

4

Bunu dene

http://robots.thoughtbot.com/designing-for-ios-blending-modes

veya

- (void)viewDidLoad
{
[super viewDidLoad];

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 30, 300, 50)];
label.numberOfLines = 0;
label.font = [UIFont systemFontOfSize:13];
label.text = @"These checkmarks use the same gray checkmark image with a tintColor applied to the image view";
[self.view addSubview:label];

[self _createImageViewAtY:100 color:[UIColor purpleColor]];
}

- (void)_createImageViewAtY:(int)y color:(UIColor *)color {
UIImage *image = [[UIImage imageNamed:@"gray checkmark.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
CGRect frame = imageView.frame;
frame.origin.x = 100;
frame.origin.y = y;
imageView.frame = frame;

if (color)
    imageView.tintColor = color;

[self.view addSubview:imageView];
}

4

Hızlı 3 amaç için

theImageView.image = theImageView.image!.withRenderingMode(.alwaysTemplate) theImageView.tintColor = UIColor.red


2

Bir UIButton görüntüsünü renklendirmek için

let image1 = "ic_shopping_cart_empty"
btn_Basket.setImage(UIImage(named: image1)?.withRenderingMode(.alwaysTemplate), for: .normal)
btn_Basket.setImage(UIImage(named: image1)?.withRenderingMode(.alwaysTemplate), for: .selected)
btn_Basket.imageView?.tintColor = UIColor(UIColor.Red)

2

iOS

Arayüz Oluşturucu'dan yapmak için çözüm , keyPath'te templateImage param'ı ayarlayın ve renk tonunuzu IB'den seçin

extension UIImageView {

// make template image with tint color
var templateImage: Bool {
    set {
        if newValue, let image = self.image {
            let newImage = image.withRenderingMode(.alwaysTemplate)
            self.image = newImage
        }
    } get {
        return false
    }
}

}


2

İOS 13 ve üstü ile şunları kullanabilirsiniz:

let image = UIImage(named: "Heart")?.withRenderingMode(.alwaysTemplate)
if #available(iOS 13.0, *) {
   imageView.image = image?.withTintColor(UIColor.white)
}

1

Swift'te Uzantıdan yararlanın: -

extension UIImageView {
    func changeImageColor( color:UIColor) -> UIImage
    {
        image = image!.withRenderingMode(.alwaysTemplate)
        tintColor = color
        return image!
    }
}

   //Change color of logo 
   logoImage.image =  logoImage.changeImageColor(color: .red)

resim açıklamasını buraya girin


1

Dan uzatma cevap Swift 3 versiyonu fuzz

func imageWithColor(color: UIColor) -> UIImage {
    UIGraphicsBeginImageContextWithOptions(self.size, false, self.scale)
    color.setFill()

    let context = UIGraphicsGetCurrentContext()! as CGContext
    context.translateBy(x: 0, y: self.size.height)
    context.scaleBy(x: 1.0, y: -1.0);
    context.setBlendMode(.normal)

    let rect = CGRect(x: 0, y: 0, width: self.size.width, height: self.size.height) as CGRect
    context.clip(to: rect, mask: self.cgImage!)
    context.fill(rect)

    let newImage = UIGraphicsGetImageFromCurrentImageContext()! as UIImage
    UIGraphicsEndImageContext()

    return newImage
}

0

Şimdi Duncan Babbage yanıt dayalı bu yöntemi kullanın:

+ (UIImageView *) tintImageView: (UIImageView *)imageView withColor: (UIColor*) color{
    imageView.image = [imageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
    [imageView setTintColor:color];
    return imageView;
}

0

Temizle düğmesini değiştirmek için bir resminiz varsa bunu Swift 3'te kullanabilirsiniz

func addTextfieldRightView(){

    let rightViewWidth:CGFloat = 30

    let viewMax = self.searchTxt.frame.height
    let buttonMax = self.searchTxt.frame.height - 16

    let buttonView = UIView(frame: CGRect(
        x: self.searchTxt.frame.width - rightViewWidth,
        y: 0,
        width: viewMax,
        height: viewMax))

    let myButton = UIButton(frame: CGRect(
        x: (viewMax - buttonMax) / 2,
        y: (viewMax - buttonMax) / 2,
        width: buttonMax,
        height: buttonMax))

    myButton.setImage(UIImage(named: "BlueClear")!, for: .normal)

    buttonView.addSubview(myButton)

    let clearPressed = UITapGestureRecognizer(target: self, action: #selector(SearchVC.clearPressed(sender:)))
    buttonView.isUserInteractionEnabled = true
    buttonView.addGestureRecognizer(clearPressed)

    myButton.addTarget(self, action: #selector(SearchVC.clearPressed(sender:)), for: .touchUpInside)

    self.searchTxt.rightView = buttonView
    self.searchTxt.rightViewMode = .whileEditing
}

0

Kod ve Arayüz Oluşturucu'dan da kullanılabilen alt sınıf:

@implementation TintedImageView

- (instancetype)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        [self setup];
    }
    return self;
}

- (instancetype)initWithCoder:(NSCoder *)aDecoder {
    self = [super initWithCoder:aDecoder];
    if (self) {
        [self setup];
    }
    return self;
}

-(void)setup {
    self.image = [self.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
}

@end

0

Bu benim UIImage uzantısı ve bir görüntü için doğrudan changeTintColor işlevini kullanabilirsiniz.

extension UIImage {

    func changeTintColor(color: UIColor) -> UIImage {
        var newImage = self.withRenderingMode(.alwaysTemplate)
        UIGraphicsBeginImageContextWithOptions(self.size, false, newImage.scale)
        color.set()
        newImage.draw(in: CGRect(x: 0.0, y: 0.0, width: self.size.width, height: self.size.height))
        newImage = UIGraphicsGetImageFromCurrentImageContext()!
        UIGraphicsEndImageContext()
        return newImage
    }

    func changeColor(color: UIColor) -> UIImage {
        let backgroundSize = self.size
        UIGraphicsBeginImageContext(backgroundSize)
        guard let context = UIGraphicsGetCurrentContext() else {
            return self
        }
        var backgroundRect = CGRect()
        backgroundRect.size = backgroundSize
        backgroundRect.origin.x = 0
        backgroundRect.origin.y = 0

        var red: CGFloat = 0
        var green: CGFloat = 0
        var blue: CGFloat = 0
        var alpha: CGFloat = 0
        color.getRed(&red, green: &green, blue: &blue, alpha: &alpha)
        context.setFillColor(red: red, green: green, blue: blue, alpha: alpha)
        context.translateBy(x: 0, y: backgroundSize.height)
        context.scaleBy(x: 1.0, y: -1.0)
        context.clip(to: CGRect(x: 0.0, y: 0.0, width: self.size.width, height: self.size.height),
                 mask: self.cgImage!)
        context.fill(backgroundRect)

        var imageRect = CGRect()
        imageRect.size = self.size
        imageRect.origin.x = (backgroundSize.width - self.size.width) / 2
        imageRect.origin.y = (backgroundSize.height - self.size.height) / 2

        context.setBlendMode(.multiply)
        context.draw(self.cgImage!, in: imageRect)

        let newImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return newImage!
    }

}

Bunun gibi örnek kullanım

let image = UIImage(named: "sample_image")
imageView.image = image.changeTintColor(color: UIColor.red)

Ve changeColorgörüntü rengini değiştirmek için değiştirme işlevini kullanabilirsiniz


0

profileImageView.image = theImageView.image! .withRenderingMode (.alwaysTemplate)
profileImageView.tintColor = UIColor.green

VEYA

İlk olarak görüntü öğesinde Belirli görüntü öğesini seçin ve ardından Varsayılan yerine ve bu yazma satırından sonra kırmızı olarak şablon olarak kırmızılaştırılmış'ı seçin. profileImageView.tintColor = UIColor.green


0

SVG görüntüsü için herhangi bir kimliğiniz varsa renkleri kimliğe göre doldurabilirsiniz.

    let image = SVGKImage(named: "iconName")
    let svgIMGV = SVGKFastImageView(frame: self.imgView.frame)
         svgIMGV.image = image
          svgIMGV.fillTintColor(colorImage: UIColor.red, iconID: "Bank")
// Add in extension SVGKImageView
extension SVGKImageView {
 func fillTintColor(colorImage: UIColor, iconID: String) {
        if self.image != nil && self.image.caLayerTree != nil {
            print(self.image.caLayerTree.sublayers)
            guard let sublayers = self.image.caLayerTree.sublayers else { return }
            fillRecursively(sublayers: sublayers, color: colorImage, iconID: iconID)
        }
    }

     private func fillRecursively(sublayers: [CALayer], color: UIColor, iconID: String, hasFoundLayer: Bool) {
        var isLayerFound = false
        for layer in sublayers {
            if let l = layer as? CAShapeLayer {

                print(l.name)                
                //IF you want to color the specific shapelayer by id else remove the l.name  == "myID"  validation
                if let name =  l.name,  hasFoundLayer == true && name == "myID" {
                    self.colorThatImageWIthColor(color: color, layer: l)
                    print("Colouring FInished")
                }
            } else {
                if layer.name == iconID {
                    if let innerSublayer = layer.sublayers as? [CAShapeLayer] {
                        fillRecursively(sublayers: innerSublayer, color: color, iconID: iconID, hasFoundLayer: true )
                        print("FOund")
                    }
                } else {
                    if let l = layer as? CALayer, let sub = l.sublayers {
                        fillRecursively(sublayers: sub, color: color, iconID: iconID, hasFoundLayer: false)
                    }
                }
            }

        }
    }

    func colorThatImageWIthColor(color: UIColor, layer: CAShapeLayer) {
        if layer.strokeColor != nil {
            layer.strokeColor = color.cgColor
        }
        if layer.fillColor != nil {
            layer.fillColor = color.cgColor
        }
    }

}

VEYA Bu örneği inceleyin.

https://github.com/ravisfortune/SVGDEMO


0
let navHeight = self.navigationController?.navigationBar.frame.height;
let menuBtn = UIButton(type: .custom)
menuBtn.frame = CGRect(x: 0, y: 0, width: 45, height: navHeight!)     
menuBtn.setImage(UIImage(named:"image_name")!.withRenderingMode(.alwaysTemplate), for: .normal)        
menuBtn.tintColor = .black
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.