为什么在使用新的 datepickerstyle 时,我的 UIDatePicker 和它的工具栏之间是空的 space?
Why is there empty space between my UIDatePicker and its toolbar when using the new datepickerstyle?
我的 iOS 应用程序使用大量 UIDatePickers 作为 UITextFields 的输入视图。在 iOS 14 之前,他们工作得很好,没有任何问题。但是,对于新的“紧凑”样式,出于某种原因,在日期选择器和它的工具栏之间有一个透明的 space 栏。这只发生在 iPhone X 及更高版本上,所以我假设它与曲面屏幕有关,但我看不到代码的哪一部分导致了问题。以下是日期选择器的代码片段以及问题的屏幕截图——如有任何帮助,我们将不胜感激。
let toolbar = UIToolbar()
toolbar.sizeToFit()
let finishedButton = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(donedatePicker))
finishedButton.tag = datePickerField!.tag
let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.flexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(cancelDatePicker))
cancelButton.tag = datePickerField!.tag
toolbar.setItems([cancelButton,spaceButton,finishedButton], animated: false)
datePickerField!.inputAccessoryView = toolbar //datePickerField is the UITextField
灰色背景和“保存更改”按钮是实际的应用程序本身。
显然,新的 .compact 样式旨在代替文本字段,而不是用作输入视图。所以如果你想像我一样把它作为输入视图,你应该把样式改回 .wheels.
我的 iOS 应用程序使用大量 UIDatePickers 作为 UITextFields 的输入视图。在 iOS 14 之前,他们工作得很好,没有任何问题。但是,对于新的“紧凑”样式,出于某种原因,在日期选择器和它的工具栏之间有一个透明的 space 栏。这只发生在 iPhone X 及更高版本上,所以我假设它与曲面屏幕有关,但我看不到代码的哪一部分导致了问题。以下是日期选择器的代码片段以及问题的屏幕截图——如有任何帮助,我们将不胜感激。
let toolbar = UIToolbar()
toolbar.sizeToFit()
let finishedButton = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(donedatePicker))
finishedButton.tag = datePickerField!.tag
let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.flexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(cancelDatePicker))
cancelButton.tag = datePickerField!.tag
toolbar.setItems([cancelButton,spaceButton,finishedButton], animated: false)
datePickerField!.inputAccessoryView = toolbar //datePickerField is the UITextField
灰色背景和“保存更改”按钮是实际的应用程序本身。
显然,新的 .compact 样式旨在代替文本字段,而不是用作输入视图。所以如果你想像我一样把它作为输入视图,你应该把样式改回 .wheels.