如何使 UIToolbarItem 拉伸到全宽?

How to make UIToolbarItem stretch to full width?

我有一个带有工具栏的视图控制器。当我只添加一个 UISlider:

        let slider = UISlider()
        let sliderItem = UIBarButtonItem(customView: slider)
        toolbarItems = [sliderItem]

它填满了工具栏的整个宽度。

但是如果我添加一个按钮:

        ...
        let buttonItem = UIBarButtonItem(title: "Press", style: .plain, target: nil, action: nil)
        toolbarItems = [sliderItem, buttonItem]

滑块缩小到屏幕的大约 1/3 的宽度。滑块和按钮并排显示在左下角。

我试过添加固定垫片,但没有效果。

如何让滑块拉伸以填充代码中的剩余宽度?

您可以使用 UIStackView 来排列子视图和 UIButton:

    let button = UIButton()
    button.backgroundColor = .blue
    let slider = UISlider()
    let stackView = UIStackView(frame: toolBar.frame)
    stackView.distribution = .fill
    stackView.alignment = .top
    stackView.axis = .horizontal
    stackView.addArrangedSubview(slider)
    stackView.addArrangedSubview(button)
    stackView.spacing = 8.0
    toolBar.items = [UIBarButtonItem(customView: stackView)]