Ios 工具栏中的“完成”按钮问题
我添加了一个带有“完成”和“取消”按钮的工具栏,一切正常。突然,“完成”和“取消”文本被隐藏。按钮存在且可单击,但没有文本。除了同样的问题,我什么都试过了 以下是有关工具栏的代码:Ios 工具栏中的“完成”按钮问题,ios,uitoolbar,cancel-button,Ios,Uitoolbar,Cancel Button,我添加了一个带有“完成”和“取消”按钮的工具栏,一切正常。突然,“完成”和“取消”文本被隐藏。按钮存在且可单击,但没有文本。除了同样的问题,我什么都试过了 以下是有关工具栏的代码: func createDatePicker(){ //format for datepicker display datePicker.datePickerMode = .date datePicker.minimumDate = Date() datePicker.backgroun
func createDatePicker(){
//format for datepicker display
datePicker.datePickerMode = .date
datePicker.minimumDate = Date()
datePicker.backgroundColor = UIColor.white
// ToolBar
let toolBar = UIToolbar()
toolBar.barStyle = UIBarStyle.default
toolBar.isTranslucent = true
toolBar.backgroundColor = UIColor(red: 253/255, green: 184/255, blue: 20/35, alpha: 1.0)
//datePicker.tintColor = UIColor.blue
toolBar.tintColor = UIColor.blue
toolBar.sizeToFit()
toolBar.isUserInteractionEnabled = true
//add a done button on this toolbar
let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneClicked))
let spaceButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(cancelClicked))
toolBar.setItems([cancelButton,spaceButton,doneButton], animated: true)
testfield.inputAccessoryView = toolBar
testfield.inputView = datePicker
self.view.addSubview(testfield)
}
这就是结果:
这是我根据您的代码使用的代码,它对我来说非常好
import UIKit
class ViewController: UIViewController {
var datePicker = UIDatePicker()
var testfield: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
createDatePicker()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func createDatePicker(){
// TextField
testfield = UITextField(frame: CGRect(x: 20, y: 100, width: 300, height: 40))
testfield.placeholder = "testfiled"
self.view.addSubview(testfield)
//format for datepicker display
datePicker.datePickerMode = .date
datePicker.minimumDate = Date()
datePicker.backgroundColor = UIColor.white
// ToolBar
let toolBar = UIToolbar()
toolBar.barStyle = UIBarStyle.default
toolBar.isTranslucent = true
toolBar.backgroundColor = UIColor(red: 253/255, green: 184/255, blue: 20/35, alpha: 1.0)
//datePicker.tintColor = UIColor.blue
toolBar.tintColor = UIColor.blue
toolBar.sizeToFit()
toolBar.isUserInteractionEnabled = true
//add a done button on this toolbar
let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneClicked))
let spaceButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(cancelClicked))
toolBar.setItems([cancelButton,spaceButton,doneButton], animated: true)
testfield.inputAccessoryView = toolBar
testfield.inputView = datePicker
}
@objc func doneClicked(){
}
@objc func cancelClicked(){
}
}
请尝试在设备和模拟器上进行测试
或者在构建之前尝试clean(shift+cmd+k)项目,这在大多数情况下都有帮助
结果
我通过将图像添加到“完成”和“取消”按钮来解决问题
let DonebuttonIcon = UIImage(named: "done-calender.png")
let doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.done, target: self, action: #selector(doneClicked))
doneButton.image = DonebuttonIcon
doneButton.tintColor = UIColor.gray
let spaceButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
let CancelbuttonIcon = UIImage(named: "cancel-calender.png")
let cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.done, target: self, action: #selector(cancelClicked))
cancelButton.image = CancelbuttonIcon
cancelButton.tintColor = UIColor.gray
我在我的项目之外尝试了这段代码,效果很好。。。然后我在我的项目中添加了另一个VC代码,但仍然存在相同的问题。。。我的项目中有一些问题导致了此问题,但我无法找出我认为还有其他一些问题阻碍了此问题的出现。我可以要求您共享此项目吗?完全或部分取决于您的方便程度。我通过以下方法解决了此问题:,,,创建自定义点,,,,,,将图像添加到按钮(请参阅我的评论)我很高兴它部分地解决了您的问题,但这并不是您问题的解决方案,我想找出导致实际问题的原因,因为它也可能发生在您的代码库的其他地方。您可以使用层次结构检查器尝试找出按钮的位置:遵循以下步骤→