Swift中如何将Toolbar的Done按钮调整至右侧?
解决Toolbar中Done按钮移至右侧的问题
嗨,我来帮你搞定这个问题!要把Done按钮移到Toolbar的右侧,只需要给Toolbar的items列表先添加一个灵活空间的BarButtonItem,就能自动把Done按钮挤到最右边啦。
原因说明
UIToolbar的按钮是从左到右依次排列的,默认直接添加Done按钮会显示在左侧。而UIBarButtonItem(barButtonSystemItem: .flexibleSpace)会占据Toolbar中所有可用的空白空间,从而把后面的Done按钮推到右侧位置。
修改后的完整代码
let picker = UIDatePicker() func createDatePicker() { let toolbar = UIToolbar() toolbar.sizeToFit() // done button for toolbar let done = UIBarButtonItem(barButtonSystemItem: .done, target: nil, action: #selector(donePressed)) // 添加灵活空间,把Done按钮推到右侧 let flexibleSpace = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil) toolbar.setItems([flexibleSpace, done], animated: false) tanggalLahirTextField.inputAccessoryView = toolbar tanggalLahirTextField.inputView = picker picker.datePickerMode = .date } // 别忘了实现donePressed方法 @objc func donePressed() { tanggalLahirTextField.resignFirstResponder() // 这里可以添加处理选中日期的逻辑 }
额外小提示
如果之后你需要在左侧也添加按钮(比如取消按钮),可以这样组合items:
let cancel = UIBarButtonItem(barButtonSystemItem: .cancel, target: nil, action: #selector(cancelPressed)) toolbar.setItems([cancel, flexibleSpace, done], animated: false)
这样Cancel按钮会在左侧,Done在右侧,中间的灵活空间会自动填充两者之间的空白。
内容的提问来源于stack exchange,提问作者Indra Sen
相关产品推荐
相关产品推荐

