更改 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:")