我正在尝试使用以下代码将Cancel UIBarButtonItem添加到导航栏:

func setupNavBar() {
    self.navBar = UINavigationBar(frame: CGRectMake(0.0, 0.0, UIScreen.mainScreen().bounds.width, 64.0))

    let customNavigationItem = UINavigationItem(title: "Connect Accounts")
    let cancelButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Cancel, target: self, action: "cancelClicked")
    customNavigationItem.setLeftBarButtonItem(cancelButton, animated: true)

    self.navBar.setItems([customNavigationItem], animated: true)

    self.view.addSubview(self.navBar)
}

条形按钮似乎完全粘在屏幕边缘,如下所示:

ios - UIBarButtonItem的空间问题-LMLPHP

为什么此按钮显示为固定在屏幕边缘,我如何给它留一些间距以使其不固定在屏幕边缘?请帮忙!

编辑:我的按钮贴在屏幕的左边缘,而不是左上角。

最佳答案

添加空间的正确方法是使用.FixedSpace:

let fixedSpace = UIBarButtonItem(barButtonSystemItem: .FixedSpace, target: nil, action: nil)
fixedSpace.width = 10
customNavigationItem.leftBarButtonItems = [fixedSpace, cancelButton]

UIBarButtonSystemItemFixedSpace

其他之间要添加的空格
项目。设置此值时,仅使用width属性。

在iOS 2.0及更高版本中可用。

10-08 14:55