Change color of png in buttons - ios
Following code will set tint colour for normal state of button:
For Swift 4 and newer:
let origImage = UIImage(named: "imageName")
let tintedImage = origImage?.withRenderingMode(.alwaysTemplate)
btn.setImage(tintedImage, for: .normal)
btn.tintColor = .red
You can change tint colour according to your need when state changes for button.
Older versions
For Swift 3:
let origImage = UIImage(named: "imageName")
let tintedImage = origImage?.withRenderingMode(.alwaysTemplate)
btn.setImage(tintedImage, forState: .normal)
btn.tintColor = .redColor
For Swift 2:
see revision history.
Color Tint UIButton Image
As of iOS 7, there is a new method on UIImage
to specify the rendering mode. Using the rendering mode UIImageRenderingModeAlwaysTemplate
will allow the image color to be controlled by the button's tint color.
Objective-C
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
UIImage *image = [[UIImage imageNamed:@"image_name"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
[button setImage:image forState:UIControlStateNormal];
button.tintColor = [UIColor redColor];
Swift
let button = UIButton(type: .custom)
let image = UIImage(named: "image_name")?.withRenderingMode(.alwaysTemplate)
button.setImage(image, for: .normal)
button.tintColor = UIColor.red
Changing color of image embedded to a button (Swift3)
Here's a simpler way to do this without any extension and without resetting the color on touch:
let stencil = myImage.withRenderingMode(.alwaysTemplate) // use your UIImage here
myButton.setImage(stencil, for: .normal) // assign it to your UIButton
myButton.tintColor = UIColor.white // set a color
SwiftUI - Unable to change color of Image icon
I'm not sure what are you trying to to achieve, but probably you just need template rendering mode, like
Image(self.icon)
.renderingMode(.template)
.foregroundColor(.white)
How can I change image tintColor in iOS and WatchKit
iOS
For an iOS app, in Swift 3, 4 or 5:
theImageView.image = theImageView.image?.withRenderingMode(.alwaysTemplate)
theImageView.tintColor = UIColor.red
For Swift 2:
theImageView.image = theImageView.image?.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)
theImageView.tintColor = UIColor.redColor()
Meanwhile, the modern Objective-C solution is:
theImageView.image = [theImageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
[theImageView setTintColor:[UIColor redColor]];
Watchkit
In WatchKit for Apple Watch apps, you can set the tint color for a template image.
- You must add your image to an Asset Catalog in your WatchKit App, and set the image set to be rendered as a Template Image in the Attributes Inspector. Unlike for an iPhone app, you cannot set the template rendering in code in the WatchKit Extension at present.
- Set that image to be used in your WKInterfaceImage in interface builder for your app
- Create an IBOutlet in your WKInterfaceController for the WKInterfaceImage called 'theImage'...
To then set the tint color in Swift 3 or 4:
theImage.setTintColor(UIColor.red)
Swift 2:
theImage.setTintColor(UIColor.redColor())
To then set the tint color in Objective-C:
[self.theImage setTintColor:[UIColor redColor]];
If you use a template image and do not apply a tint colour, the Global Tint for your WatchKit app will be applied. If you have not set a Global Tint, theImage
will be tinted light blue by default when used as a template image.
Change image color when click on button
You have a lot of different possibilities here:
1) Indeed make a new image with another color. Fast to start with, but not very flexible.
2) It looks a lot like a vector graphics icon. You could draw the whole icon with Bezier curves, then you can color it any color you want. There are also tools that will generate the code for you (eg PaintCode).
3) There probably is some filter for it you can use (see here: https://developer.apple.com/library/prerelease/mac/documentation/GraphicsImaging/Reference/CoreImageFilterReference/index.html)
Related Topics
Invalid Signature - Code Object Is Not Signed at All
How to Fetch User's Email Using Facebook
How to Control Shadow Spread and Blur
Uicollectionview Horizontal Paging - How to Use Flow Layout
Sending Push Notifications to iOS from Pwa
Module Was Not Compiled for Testing' When Using @Testable
Fbsession: an Attempt Was Made Reauthorize Permissions on an Unopened Session
Download Xcode 4.2 Documentation for Offline Install
Change Table to Edit Mode and Delete Rows Inside a Normal Viewcontroller
Enterprise Deployment Certificate and Profiles
React Native Change Default iOS Simulator Device
How to Deselect a Selected Uitableview Cell
Set Uitableview Content Inset Permanently
iOS 8.1 Simulator Localization Broken (Nslocalizedstring)
How to Add Headerview in Uicollectionview Like Uitableview's Tableheaderview
Is There a Public API for Card View UI That Can Be Seen Across iOS 10