UIToolbar中的UIBarButtonItem垂直对齐

时间:2019-04-20 13:10:19

标签: ios swift uibarbuttonitem uitoolbar

我有一个以编程方式生成的工具栏,以及条形按钮项目。我注意到,如果我扩展工具栏的高度,则工具栏中的项目将不再彼此对齐。我发现的所有示例都涉及创建自定义按钮,但是我只需要一个“完成”按钮和一个相机图像,因此我为此使用了内置的系统图像。

我尝试创建一个自定义UIButton并在此处设置宽度/高度,但是即使使用.scaleAspectFit,它似乎也不会更改按钮的大小。

这是自定义按钮代码:


 let barCameraButton = UIButton(type: .custom)

        barCameraButton.frame = CGRect(x: 0, y: 0, width: 90, height: 90)
        barCameraButton.setImage(UIImage(named: "camera"), for: .normal)
        barCameraButton.imageView?.contentMode = .scaleAspectFit

        //let cameraButton = UIBarButtonItem(barButtonSystemItem: .camera, target: self, action: #selector(takeScreenshot))

        let toolbar = UIToolbar(frame: CGRect(x: 0, y: 0, width: 0, height: 100))

        let item = UIBarButtonItem(customView: barCameraButton)
        toolbar.setItems([item], animated: true)
        toolbar.barTintColor = .black
        toolbar.tintColor = .white

这是我的原始代码(我想使用的代码):

  let cameraButton = UIBarButtonItem(barButtonSystemItem: .camera, target: self, action: #selector(takeScreenshot))

        let flexibleSpaceFiller = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: self, action: nil)
        let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(completedTask))
        let toolbar = UIToolbar(frame: CGRect(x: 0, y: 0, width: 0, height: 100))
        toolbar.setItems([cameraButton,flexibleSpaceFiller,doneButton], animated: true)
        toolbar.barTintColor = UIColor.black
        toolbar.tintColor = UIColor.white


        view.addSubview(toolbar)


        toolbar.translatesAutoresizingMaskIntoConstraints = false
        toolbar.bottomAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.bottomAnchor, constant: 0).isActive = true
        toolbar.leadingAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.leadingAnchor, constant: 0).isActive = true
        toolbar.trailingAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.trailingAnchor, constant: 0).isActive = true
        toolbar.heightAnchor.constraint(equalToConstant: 100).isActive = true

我希望当我更改约束以使条形更高时,图标会水平对齐。发生的情况是,摄像头按钮似乎停留在条形图的中央,柔性空间是不可见的,完成的按钮在底部说出-由于某些原因,图标在条形图中变得错开。发布的图像是工具栏高度的一个极端示例,但我相信它可以显示我所看到的。

image of WebView

0 个答案:

没有答案