Swift UIToolbar定位

时间:2015-06-27 17:03:35

标签: swift uitoolbar uitoolbaritem

我有一个UIToolbar,但我不知道如何定位它。

我会向其添加UIBarButtonItems并定位它们。工具栏显示,但我无法更改它的大小,我无法将按钮放在其中。

override func viewDidAppear(animated: Bool) {       
    self.navigationController?.setToolbarHidden(false, animated: true)
    self.navigationController?.toolbar.frame = CGRectMake(50, 50, 50, 50)
    self.navigationController?.toolbar.sizeToFit()

    let plusImg = UIImage(named: "navbar_icon-02.png")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)        
    let plusButton = UIBarButtonItem(image: plusImg, style: UIBarButtonItemStyle.Plain, target: self, action: "postLeft:")        
    let filterButton = UIBarButtonItem(title: "Feed filter", style: UIBarButtonItemStyle.Plain, target: nil, action: nil)
    let leftButton = UIBarButtonItem(title: "Button 3 tst", style: UIBarButtonItemStyle.Plain, target: nil, action: nil)

    var toolbarButtons = [filterButton]
    toolbarButtons.append(plusButton)
    toolbarButtons.append(leftButton)

    self.toolbarItems = toolbarButtons
}

1 个答案:

答案 0 :(得分:0)

您可能遇到两种可能的问题(从您提出问题的方式来看,我无法说清楚。)

  • 一个问题可能是您不在导航界面中 - 您只需要一个“松散”的工具栏。因此,通过self.navigationController?引用的工具栏不是您的工具栏,并且设置self.toolbarItems无效 - 这些仅适用于您在导航界面中且所讨论的工具栏是导航控制器的工具栏时

  • 另一个问题可能是您在导航界面中 ,在这种情况下,工具栏位置不适合您 - 这取决于导航控制器,它总是放置它在屏幕的底部。

所以,要么你需要在导航界面中,以便工具栏是导航控制器的工具栏(然后你的代码将起作用,定位部分除外),否则你可以使用“松散”的tolbar,在这种情况下,您需要使用代码来引用 工具栏,在这种情况下,您可以自由定位它,并且可以通过设置items来为其提供项目。