将多个自定义栏按钮添加到自定义导航栏
Posted
技术标签:
【中文标题】将多个自定义栏按钮添加到自定义导航栏【英文标题】:Adding multiple custom bar buttons to custom nav bar 【发布时间】:2015-07-08 18:40:25 【问题描述】:我需要在 Swift 中的 custom 导航栏的每一端添加两个栏按钮项。我正在使用以下方法,虽然我没有收到任何错误,但什么也没有出现。我正在使用我自己的自定义图标,当我使用界面生成器添加它们时会出现这些图标。显然,这样我只能在每一端添加一个。
@IBOutlet weak var navBar: UINavigationBar!
override func viewDidLoad()
var iconOne = UIImage(named: "iconOne")
var iconTwo = UIImage(named: "iconTwo")
var buttonOne:UIBarButtonItem = UIBarButtonItem(image: iconOne, style: UIBarButtonItemStyle.Plain, target: self, action: nil)
var buttonTwo:UIBarButtonItem = UIBarButtonItem(image: iconTwo, style: UIBarButtonItemStyle.Plain, target: self, action: nil)
self.navBar.setItems([buttonOne,buttonTwo], animated: true)
这是在嵌入导航控制器的视图控制器中实现的。如果我不使用自定义导航栏,我可以使用self.navigationItem.setRightBarButtonItems([buttonOne, buttonTwo], animated: true)
。解决方法是什么?
【问题讨论】:
【参考方案1】:此代码适用于我:
@IBOutlet weak var navBar: UINavigationBar!
@IBOutlet weak var navBarItem: UINavigationItem!
func displayTextInNavBar(text: String)
let labelWidth: CGFloat = navBar.frame.width / 6
let frame = CGRect(x: 0, y: 0, width: labelWidth, height: navBar.frame.height)
let label = UILabel(frame: frame)
label.textAlignment = .Right
label.textColor = UIColor(red: 0/255, green: 127/255, blue: 0/255, alpha: 1)
label.font = UIFont(name: "Bradley Hand", size: 20)
label.text = text
let navBarButtonItem = UIBarButtonItem(customView: label)
navBarItem.rightBarButtonItem = navBarButtonItem
上面在导航栏的右侧放置了一个标签。如果您想要一个可点击的实际按钮,请改为:
let navBarButtonItem = UIBarButtonItem(title: text, style: .Plain, target: self, action: nil)
如果您希望该按钮在单击时实际执行某些操作,那么请指定一些功能,而不是 nil
。
【讨论】:
【参考方案2】:我的解决方案:
var barButton : UIBarButtonItem?
override func viewDidLoad()
self.barButton = UIBarButtonItem(title: "Options", style: .plain, target: self, action: nil))
self.navigationItem.rightBarButtonItems = [barButton] as? [UIBarButtonItem]
【讨论】:
【参考方案3】:UIBarButtonItem
可以使用自定义视图创建
UIButtons
布局
使用自定义视图创建UIBarButtonItem
将其添加到导航栏
【讨论】:
这就是我想要做的。我该怎么做? 就像我解释的那样。 在代码中。我懂你的英语。我不明白这个方法。我如何实际创建视图并进行布局? 我描述的每个步骤都是 ios 开发人员 101。它们由苹果记录,并在堆栈溢出时显示数千次。不要太懒惰。以上是关于将多个自定义栏按钮添加到自定义导航栏的主要内容,如果未能解决你的问题,请参考以下文章