如何更改tintColor
的{{1}}。如果我使用button.imageView
中的相同图像使用相同的渲染模式,UIImageView
将会改变,但按钮的图像视图不会发生同样的情况。是因为buttonType?
tintColor
答案 0 :(得分:5)
设置按钮类型“系统”,然后设置色调颜色。 这个解决方案一定会奏效。请试试这个
UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];
[btn setTintColor:YOUR_COLOR];
[btn setImage:YOUR_Image];
答案 1 :(得分:2)
尝试使用此代码更改Button中的色调颜色:
UIButton *frontButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
UIImageView *imageV = [[UIImageView alloc] initWithImage:[UIImage imageNamed:FRONT_IMAGE]];
imageV.image = [imageV.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
imageV.tintColor = [UIColor redColor];
[frontButton setImage:imageV.image forState:UIControlStateNormal];
答案 2 :(得分:1)
UIButton *frontButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[frontButton setImage:[[UIImage imageNamed:FRONT_IMAGE] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] forState:UIControlStateNormal];
[frontButton setTintColor:[UIColor redColor]];
[self addSubview:frontButton];
将色调设置为按钮,如果图像渲染模式为模板,则它也会获得此色调。
如果您想要按钮的不同色调颜色和图像不同,那么您应该使用一个临时图像视图并使用渲染模式模板将图像设置为该图像视图,然后将色调颜色设置为该图像视图,然后将该图像设置为该图像视图中的按钮。
希望这会有所帮助:)
答案 3 :(得分:1)
Xamarin iOs解决方案:
Selection
答案 4 :(得分:1)
Swift 4.0
extension UIImage {
public static func imageWithRenderingModeAlwaysTemplate(named: String) -> UIImage? {
let image = UIImage(named: named)?.withRenderingMode(.alwaysTemplate)
let imageView = UIImageView(image: image)
return imageView.image
}
}
使用
let button = UIButton.setImage(UIImage.imageWithRenderingModeAlwaysTemplate(named: ""), for: .normal)
button.tintColor = .red
答案 5 :(得分:0)
我找到了答案,在设置问题中提到的呈现模式后,我只需要tintColor
UIButton
imageView
不要按下[button setTintColor:YOUR_COLOR];
属性。
{{1}}