2015-12-07 293 views
0

我有这个形象的比方按钮:更改图像的颜色,当点击按钮

enter image description here

是否有可能改变颜色为蓝色例如,上按钮时用户点击在故事板或如何用代码来做到这一点?或者我应该用蓝色上传新图像?

+0

你必须只设置背景颜色蓝色按钮,改变状态UIControlStateSelected。 – riddhi

回答

2

你有很多不同的可能性在这里:

1)确实使一个新的形象用另一种颜色。快速入门,但不是很灵活。

2)它看起来很像一个矢量图形图标。您可以用贝塞尔曲线绘制整个图标,然后您可以为其添加任何颜色。还有一些工具可以为您生成代码(例如PaintCode)。

3)有可能是一些过滤器,你可以使用(在这里看到:https://developer.apple.com/library/prerelease/mac/documentation/GraphicsImaging/Reference/CoreImageFilterReference/index.html

1

播放本:

func changeColor() { 
theImageView.image = theImageView.image!.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate) 
theImageView.tintColor = UIColor.redColor() 
} 
+0

我有一个buttonView – Arti

0

试试这个: -

[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]; 

    } 
} 
1

是的,你必须导入蓝色以及在project.In你的viewDidLoad()方法就是粘贴这些行。

目标C: -

[yourBtn setBackgroundImage:[UIImage imageNamed:@"whiteImage.png"] forState:UIControlStateNormal]; 
[yourBtn setBackgroundImage:[UIImage imageNamed:@"blueImage.png"] forState:UIControlStateSelected]; 

斯威夫特: -

yourBtn.setBackgroundImage(UIImage(named: "whiteImage.png"), forState: .Normal) 
yourBtn.setBackgroundImage(UIImage(named: "blueImage.png"), forState: .Selected) 

此按钮创建动作,只是粘贴此代码。

目标C: -

-(void)buttonTapped:(UIButton *)sender 
{ 
    if(sender.isSelected) 
    { 
     [sender setSelected:NO]; 
    } 
    else 
    { 
     [sender setSelected:YES]; 
    } 

} 

斯威夫特: -

func buttonTapped(sender: UIButton) { 
    if sender.isSelected { 
     sender.selected = false 
    } 
    else { 
     sender.selected = true 
    } 
}