更改UIBarButton(Swift)中按钮内图标的颜色

thu*_*ief 0 uibutton uibarbuttonitem ios swift

我有一个带有UIBarButton的UIToolbar,其中包含一个包含图像的按钮(点击后图像会发生变化,所以我显然必须根据我的研究这样做).

虽然图像本身是白色的并且是png,但它显示为黑色(我希望它是白色的).我已将条形按钮项目上的色调颜色设置为白色,将按钮上的文本颜色设置为白色,并包含 button.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal) 在我的ViewDidLoad中.它仍然是黑色的.它应该始终是白色的,所以我不关心我是以编程方式还是通过InterfaceBuilder执行此操作.

Vit*_*nko 6

您需要以UIImageRenderingModeAlwaysTemplate渲染模式加载图像:

Objective-C的

UIImage *toolbarButtonImage = [[UIImage imageNamed:@"SomeImage"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithImage:toolbarButtonImage style:UIBarButtonItemStylePlain target:self action:@selector(someAction)];
Run Code Online (Sandbox Code Playgroud)

迅速:

let buttonImage = UIImage(named: "SomeImage")!.imageWithRenderingMode(.AlwaysTemplate)
let button = UIBarButtonItem(image: buttonImage, style: .Plain, target: self, action: "someAction:")
Run Code Online (Sandbox Code Playgroud)