我在堆栈上找到了解决方案溢出,可以在iOS中创建具有标题和图像的条形按钮项,但是图像具有蓝色,而不是按原样显示。我找到了堆栈上的解决方案溢出,可以按原样在条形按钮项中显示图像而不显示蓝色,但条形按钮项不显示标题。
是否可以创建同时显示标题和图像并显示图像的条形按钮项目?
这是我的代码:
let image = UIImage(named: "iMessage Icon 40x30.png")
let button = UIButton(type: .custom)
button.frame = CGRect(x: 0, y: 0, width: 500, height: 30)
button.setTitle("Purchase iMessage Saved Messages", for: .normal)
button.setImage(image, for: .normal)
button.addTarget(self, action: #selector(self.tap), for: .touchUpInside)
button.sizeToFit()
let customBarButtonItem = UIBarButtonItem(customView: button)
navigationItem.leftBarButtonItem = customBarButtonItem
此代码使用图像按原样创建条形按钮项目,没有蓝色,但是标题不显示。如果我更改第二行代码并将UIButton对象初始化为类型系统,则标题与图像一样显示,但是图像具有蓝色,这是我不想要的。
答案 0 :(得分:1)
正如您已经提到的那样,使用type作为系统,您可以同时看到图像和标题。
因此,您使用系统类型的UIButton,并从代码中更改以下行
button.setImage(image, for: .normal)
对此:
button.setImage(image.withRenderingMode(.alwaysOriginal), for: .normal)
这将不允许在您的图像上应用色调,并将使用原始图像。
答案 1 :(得分:1)
我同意以上答案,但就我而言,以下代码可以正常工作。
button.setImage(UIImage(named: "ImageName.png").withRenderingMode(.automatic), for: UIControl.State.normal)