如何将背景图像放入Swift 4上的工具栏按钮

如何将背景图像放入Swift 4上的工具栏按钮,swift,xcode,Swift,Xcode,我总是遇到这样的问题:无法将UIImage?.type类型的值转换为预期的参数类型UIImage 我使用了以下代码: btn.setBackgroundImage(UIImage?: welcome.png ,for : UIControlState.normal, barMetrics: UIBarMetrics.default) Obj-C: UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; [btn setFram

我总是遇到这样的问题:无法将UIImage?.type类型的值转换为预期的参数类型UIImage

我使用了以下代码:

btn.setBackgroundImage(UIImage?: welcome.png ,for : UIControlState.normal, barMetrics: UIBarMetrics.default)

Obj-C:

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setFrame:CGRectMake(0.0f, 0.0f, 25.0f, 40.0f)];
[btn addTarget:self action:@selector(buttonEN:) forControlEvents:UIControlEventTouchUpInside];
[btn setImage:[UIImage imageNamed:@"cys_lang_en.png"] forState:UIControlStateNormal];
UIBarButtonItem *eng_btn = [[UIBarButtonItem alloc] initWithCustomView:btn];
self.navigationItem.rightBarButtonItem = eng_btn;
var btn = UIButton(type: .custom)
btn.frame = CGRect(x: 0.0, y: 0.0, width: 25.0, height: 40.0)
btn.addTarget(self, action: Selector("buttonEN:"), for: .touchUpInside)
btn.setImage(UIImage(named: "cys_lang_en.png"), for: .normal)
var eng_btn = UIBarButtonItem(customView: btn)
navigationItem?.rightBarButtonItem = eng_btn
Swift 4.0:

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setFrame:CGRectMake(0.0f, 0.0f, 25.0f, 40.0f)];
[btn addTarget:self action:@selector(buttonEN:) forControlEvents:UIControlEventTouchUpInside];
[btn setImage:[UIImage imageNamed:@"cys_lang_en.png"] forState:UIControlStateNormal];
UIBarButtonItem *eng_btn = [[UIBarButtonItem alloc] initWithCustomView:btn];
self.navigationItem.rightBarButtonItem = eng_btn;
var btn = UIButton(type: .custom)
btn.frame = CGRect(x: 0.0, y: 0.0, width: 25.0, height: 40.0)
btn.addTarget(self, action: Selector("buttonEN:"), for: .touchUpInside)
btn.setImage(UIImage(named: "cys_lang_en.png"), for: .normal)
var eng_btn = UIBarButtonItem(customView: btn)
navigationItem?.rightBarButtonItem = eng_btn
试试这个:

btn.setBackgroundImage(UIImage(named: "welcome") ,for : UIControlState.normal)

Swift 5.0

btn.setBackgroundImage(UIImage(named: "welcome"), for: .normal, barMetrics: .default)

为什么你在使用macos标签的同时暗示你的问题与iOS有关?