繁体   English   中英

UIButton的SetTint将不成立

[英]SetTint of UIButton won't hold

我通过Web加载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图像。 这些图像是从Web加载的,选择它们应突出显示它们,以使您感觉已选择了此按钮。 任何帮助将不胜感激。

UiImage必须具有模板渲染模式才能使用色调。 像这样:

UIImage *imageTint = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
[button setImage:imageTint forState:UIControlStateNormal]; 

您可以使用另一个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)];

改用这个

- (IBAction)classicBackgroundButtonPressed:(UIButton *)sender {

    [sender setTintColor:[UIColor greenColor]];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM