我正在通过网络加载UIButton
的图片:
NSURL *imageURL = [NSURL URLWithString:[ruleImageArr objectAtIndex:0]];
NSData *data = [NSData dataWithContentsOfURL:imageURL];
[self.classicBackgroundButton setImage:image forState:(UIControlStateNormal)];
哪个工作正常。因此,当用户点击它时我想要按钮setTint
。我正是这样做的:
- (IBAction)classicBackgroundButtonPressed:(id)sender {
[self.classicBackgroundButton setTintColor:[UIColor greenColor]];
}
但它不起作用。似乎无法弄清楚问题是什么?
我在stackOverFlow上搜索了它,但它主要是我可以替换UIButton
图像。这些图像是从网页加载的,选择它们应该突出显示它们,以便感觉这个按钮被选中。任何帮助都会得到解决。
答案 0 :(得分:0)
UiImage
必须具有模板渲染模式才能使用色调。像这样:
UIImage *imageTint = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
[button setImage:imageTint forState:UIControlStateNormal];
答案 1 :(得分:0)
你可以使用另一个UIControlState来管理它。
NSURL *imageURL = [NSURL URLWithString:[ruleImageArr objectAtIndex:0]];
NSData *data = [NSData dataWithContentsOfURL:imageURL];
[self.classicBackgroundButton setImage:image forState:(UIControlStateSelected)];
[self.classicBackgroundButton setImage:image forState:(UIControlStateHighlighted)];
[self.classicBackgroundButton setImage:image forState:(UIControlStateNormal)];
答案 2 :(得分:0)
改为使用
- (IBAction)classicBackgroundButtonPressed:(UIButton *)sender {
[sender setTintColor:[UIColor greenColor]];
}