为 splitViewController displayModeButtonItem (UIBarButtonItem) 使用自定义图像时遇到问题 Swift IOS 9
Trouble using a custom image for splitViewController displayModeButtonItem (UIBarButtonItem) Swift IOS 9
我正在使用 splitViewController 在我的应用程序中启用滑出菜单,在 iOS 上使用 Swift 9.
除了无法为我的 "Menu" 按钮(即 splitViewController 的 displayModeButtonItem)获取自定义图像外,我的一切都按预期工作。
这是我试过的。
override func viewDidLayoutSubviews() {
// This will create a properly-working menu barbuttonitem, but is of course
// a text based title.
navigationItem.leftBarButtonItem = UIBarButtonItem(title: "≡",
style: UIBarButtonItemStyle.Plain,
target: splitViewController!.displayModeButtonItem().target,
action: splitViewController!.displayModeButtonItem().action)
这个版本是我尝试使用自定义图像而不是文本标题,但我只是在图像应该出现的地方出现了一个灰色框。
navigationItem.leftBarButtonItem = UIBarButtonItem(image: UIImage(named: "29x29"),
style: .Plain,
target: splitViewController!.displayModeButtonItem().target,
action: splitViewController!.displayModeButtonItem().action)
有什么建议吗?
谢谢
您需要制作一个 UIButton
并在其中设置图像并将其设置为 leftBarButtonItem,就像在您的 -viewDidLoad
:
中一样
let menuButton = UIButton(type: .Custom)
menuButton.frame = CGRectMake(0, 0, 29, 29)
menuButton.setImage(UIImage(named:"29x29"), forState: .Normal)
menuButton.addTarget(self, action: "menuPressed:", forControlEvents: .TouchUpInside)
let barButton = UIBarButtonItem(customView: menuButton)
navigationItem.leftBarButtonItem = barButton
并在单独的方法中执行您的操作:
func menuPressed(sender: AnyObject) {
//show menu
}
我正在使用 splitViewController 在我的应用程序中启用滑出菜单,在 iOS 上使用 Swift 9.
除了无法为我的 "Menu" 按钮(即 splitViewController 的 displayModeButtonItem)获取自定义图像外,我的一切都按预期工作。
这是我试过的。
override func viewDidLayoutSubviews() {
// This will create a properly-working menu barbuttonitem, but is of course
// a text based title.
navigationItem.leftBarButtonItem = UIBarButtonItem(title: "≡",
style: UIBarButtonItemStyle.Plain,
target: splitViewController!.displayModeButtonItem().target,
action: splitViewController!.displayModeButtonItem().action)
这个版本是我尝试使用自定义图像而不是文本标题,但我只是在图像应该出现的地方出现了一个灰色框。
navigationItem.leftBarButtonItem = UIBarButtonItem(image: UIImage(named: "29x29"),
style: .Plain,
target: splitViewController!.displayModeButtonItem().target,
action: splitViewController!.displayModeButtonItem().action)
有什么建议吗?
谢谢
您需要制作一个 UIButton
并在其中设置图像并将其设置为 leftBarButtonItem,就像在您的 -viewDidLoad
:
let menuButton = UIButton(type: .Custom)
menuButton.frame = CGRectMake(0, 0, 29, 29)
menuButton.setImage(UIImage(named:"29x29"), forState: .Normal)
menuButton.addTarget(self, action: "menuPressed:", forControlEvents: .TouchUpInside)
let barButton = UIBarButtonItem(customView: menuButton)
navigationItem.leftBarButtonItem = barButton
并在单独的方法中执行您的操作:
func menuPressed(sender: AnyObject) {
//show menu
}