【问题标题】:Navigation Bar Button Item Tint导航栏按钮项目色调
【发布时间】:2014-04-01 15:42:27
【问题描述】:
是否可以将导航栏按钮项拖动到导航栏,使用图像,并且不应用色调以使原始图像按预期显示?还是只能通过代码添加导航栏按钮项来实现?
示例:我的深色背景导航栏的默认色调为白色,但我想为其中一个按钮显示一个橙色图像图标。如果我拖动一个条形按钮项并设置图像,它会显示为白色。我可以更改(或删除)这个按钮的色调吗?或者,我是否需要忘记可视化编辑器并以编程方式创建此按钮来控制色调?
【问题讨论】:
标签:
ios
xcode
uibarbuttonitem
【解决方案1】:
如果要保持图像的原始颜色,则必须在代码中进行:
[button setImage:[[UIImage imageNamed:@"imageName.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forState:UIControlStateNormal];
如果您想覆盖按钮的色调(例如:仅橙色),您可以在情节提要中实现。只需将 Xcode 的 Attributes Inspector 内的 Bar Button Item 的 tint 颜色设置为所需的颜色:
【解决方案2】:
这是 lootsch 的(优秀)答案转换为 Swift 3 / Swift 4:
barButton.image = UIImage(named: "imageName")?.withRenderingMode(.alwaysOriginal)
【解决方案3】:
要保持图像的原始颜色,您必须通过代码而不是故事板将图像分配给按钮。
- 在您的类文件(通常是 ViewController)中引用您的 Button Outlet
-
通过代码将图像分配给按钮:
[self.bbiHome setImage:[[UIImage imageNamed:@"icon.png"]
imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];