Reputation: 7762
I have a button with this image for example:
Is there possible to change color to blue for example, when user click on button in storyboard or how to do this with code ? Or i should upload new image with blue color ?
Upvotes: 0
Views: 2183
Reputation: 962
Yes you have to import blue as well in your project.In your viewDidLoad() mehtod just paste these lines.
Objective C :-
[yourBtn setBackgroundImage:[UIImage imageNamed:@"whiteImage.png"] forState:UIControlStateNormal];
[yourBtn setBackgroundImage:[UIImage imageNamed:@"blueImage.png"] forState:UIControlStateSelected];
Swift :-
yourBtn.setBackgroundImage(UIImage(named: "whiteImage.png"), forState: .Normal)
yourBtn.setBackgroundImage(UIImage(named: "blueImage.png"), forState: .Selected)
Create Action for this button and just paste this code.
Objective C:-
-(void)buttonTapped:(UIButton *)sender
{
if(sender.isSelected)
{
[sender setSelected:NO];
}
else
{
[sender setSelected:YES];
}
}
Swift :-
func buttonTapped(sender: UIButton) {
if sender.isSelected {
sender.selected = false
}
else {
sender.selected = true
}
}
Upvotes: 1
Reputation: 105
Try this :-
[self.yourBtn addTarget:self action:@selector(ButtonSelector:) forControlEvents:UIControlEventTouchUpInside];
[self.yourBtn setBackgroundImage:[UIImage imageNamed:@"[email protected]"]forState:UIControlStateNormal];
-(void)ButtonSelector:(UIButton *)sender{
if ([sender isSelected]) {
[self.yourBtn setBackgroundImage:[UIImage imageNamed:@"[email protected]"]forState:UIControlStateNormal];
[sender setSelected: NO];
} else {
[self.yourBtn setBackgroundImage:[UIImage imageNamed:@"[email protected]"]forState:UIControlStateNormal];
[sender setSelected: YES];
}
}
Upvotes: 0
Reputation: 9346
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)
Upvotes: 2
Reputation: 1320
Play with this:
func changeColor() {
theImageView.image = theImageView.image!.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)
theImageView.tintColor = UIColor.redColor()
}
Upvotes: 1