更改 UIBarButton 内按钮内图标的颜色 (Swift)
Change the color of an icon within a button within a UIBarButton (Swift)
我有一个 UIToolbar 和一个 UIBarButton,其中包含一个包含图像的按钮(单击时图像会发生变化,因此根据我的研究,我显然必须这样做)。
虽然图像本身是白色的并且是 png,但它显示为黑色(我想要白色)。我已经将 Bar Button Item 的色调设置为白色,将 Button 上的文本颜色设置为白色,并包含
button.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
在我的 ViewDidLoad 中。它仍然是黑色的。它应该始终是白色的,所以我不关心我是通过编程方式还是通过 InterfaceBuilder 执行此操作。
您需要在 UIImageRenderingModeAlwaysTemplate
渲染模式下加载图像:
Objective-C
UIImage *toolbarButtonImage = [[UIImage imageNamed:@"SomeImage"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithImage:toolbarButtonImage style:UIBarButtonItemStylePlain target:self action:@selector(someAction)];
Swift:
let buttonImage = UIImage(named: "SomeImage")!.imageWithRenderingMode(.AlwaysTemplate)
let button = UIBarButtonItem(image: buttonImage, style: .Plain, target: self, action: "someAction:")
我有一个 UIToolbar 和一个 UIBarButton,其中包含一个包含图像的按钮(单击时图像会发生变化,因此根据我的研究,我显然必须这样做)。
虽然图像本身是白色的并且是 png,但它显示为黑色(我想要白色)。我已经将 Bar Button Item 的色调设置为白色,将 Button 上的文本颜色设置为白色,并包含
button.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
在我的 ViewDidLoad 中。它仍然是黑色的。它应该始终是白色的,所以我不关心我是通过编程方式还是通过 InterfaceBuilder 执行此操作。
您需要在 UIImageRenderingModeAlwaysTemplate
渲染模式下加载图像:
Objective-C
UIImage *toolbarButtonImage = [[UIImage imageNamed:@"SomeImage"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithImage:toolbarButtonImage style:UIBarButtonItemStylePlain target:self action:@selector(someAction)];
Swift:
let buttonImage = UIImage(named: "SomeImage")!.imageWithRenderingMode(.AlwaysTemplate)
let button = UIBarButtonItem(image: buttonImage, style: .Plain, target: self, action: "someAction:")