以编程方式构建工具栏

Build Toolbar programmatically

我正在学习如何使用 Swift,我意识到我无法将工具栏直接添加到带有 UITableViewController 的情节提要中,所以我很难尝试添加它以编程方式。

这就是我试图让它看起来像的东西:

现在,我添加了这段代码:

    let homeButton = UIBarButtonItem(title: "H", style: .plain, target: self, action: #selector(ProfileButtonTapped))

    let addButton = UIBarButtonItem(title: "+", style: .plain, target: self, action: #selector(ProfileButtonTapped))

let loveButton = UIBarButtonItem(title: "Love", style: .plain, target: self, action: #selector(ProfileButtonTapped))

let arr: [Any] = [homeButton, addButton, loveButton]
setToolbarItems(arr as? [UIBarButtonItem] ?? [UIBarButtonItem](), animated: true)
super.viewDidAppear(animated)

看起来像这样:

但我找不到使它看起来与原始间距相同的方法,而且如果我设置图像,我也找不到根据需要调整大小的方法。

我尝试使用我在此处找到的这段代码并且似乎有效,但是当我加载我的应用程序时,它只显示没有任何元素的栏。

navigationController?.setToolbarHidden(false, animated: true)

let homeButn = UIImage(named: "HomeButton")

let zeroPoint = CGPoint.zero
let settingsButton = UIButton(type: UIButtonType.custom) as UIButton
settingsButton.frame = CGRect(origin: zeroPoint, size: CGSize(width: 27, height: 27))
settingsButton.setImage(homeButn, for: [])
settingsButton.addTarget(self, action: #selector(ProfileButtonTapped), for: UIControlEvents.touchUpInside)

let rightBarButtonItem = UIBarButtonItem(customView: settingsButton)
navigationItem.setRightBarButton(rightBarButtonItem, animated: true)

我真的不知道该怎么做,有什么想法吗?非常感谢!

如果有帮助,试试这个:

let flexibleSpace = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: self, action: nil)

let homeButton = UIBarButtonItem(title: "H", style: .plain, target: self, action: #selector(ProfileButtonTapped))

let flexibleSpace1 = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: self, action: nil)

let addButton = UIBarButtonItem(title: "+", style: .plain, target: self, action: #selector(ProfileButtonTapped))

let flexibleSpace2 = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: self, action: nil)

let loveButton = UIBarButtonItem(title: "Love", style: .plain, target: self, action: #selector(ProfileButtonTapped))

let arr: [Any] = [flexibleSpace, homeButton, flexibleSpace1, addButton, flexibleSpace2, loveButton]

setToolbarItems(arr as? [UIBarButtonItem] ?? [UIBarButtonItem](), animated: true)

super.viewDidAppear(animated)

您也可以在 'H' 的左侧添加灵活的 space 以向左移动 space。