使用 xib 自定义 UIToolBar [Swift 3]

Custom UIToolBar using xib [Swift 3]

我可以在 Xib 文件中创建自定义 UIToolBar 吗?

我想制作一个工具栏,在最左侧有一个完成按钮,在左侧设置一个 last/next 按钮。但我想确保约束是这样的,它可以针对每个 phone 大小正确缩放。有例子吗?

是的,你可以。首先选择一个xib作为模板。将模板命名为 "toolbar"。

然后删除它给你的默认视图。转到右下角的对象库并拖出一个工具栏。

您将在最左侧获得一个默认的条形按钮项目。将其重命名为 "Done",然后拖出另一个条形按钮项并将其重命名为 "Next" 或 "Last"。

现在,创建一个新文件。选择 Cococa Touch Class 并使其成为 UIToolBar 的子class。

返回您的工具栏 xib 并将其 class 设为您刚刚创建的 Cocoa Touch class。在我的示例中,我将我的命名为 ToolBarExample。

现在去你的 ViewController class。在 ViewDidLoad 中添加以下内容。

   override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    let toolBar = UINib(nibName: "toolbar", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! ToolBarExample

    toolBar.frame = CGRect(x: 0, y: self.view.frame.size.height - 46, width: self.view.frame.size.width, height: 46)

    toolBar.sizeToFit()

    view.addSubview(toolBar)

}

您可以通过调整框架来更改工具栏的比例、大小和位置。您还可以从属性和大小检查器调整工具栏 xib 及其栏按钮项。这个例子最终在Simulator中应该是这样的。