я сделал отображение / скрытие выбора даты по нажатию кнопки и показ даты на кнопке, используя Tableview.
но когда я запускаю это, появляется странное пустое пространство между таблицей и датой.
когда я щелкаю это место, появляется ошибка
'Поток 1: фатальная ошибка: неожиданно обнаружен ноль при развертывании необязательного значения'
Я думал, что это потому, что я установил ячейки прототипа: 1. поэтому я установил 0, но тоже не сработал.
var dateFormatter = DateFormatter()
var datePickerIndexPath: NSIndexPath?
var datepicker : UIDatePicker?
@IBOutlet weak var ddn: UIButton!
@IBOutlet weak var TV: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
TV.isHidden=true
datepicker = UIDatePicker()
datepicker? = UIDatePicker.init(frame: CGRect(x:0, y:40, width:252, height:150))
datepicker?.setValue(UIColor(red:0.95, green:0.92, blue:0.90, alpha:1.0), forKeyPath: "textColor")
datepicker?.datePickerMode = .date
datepicker?.addTarget(self, action: #selector(datepickerViewController.dateChanged(datepicker: )),for: .valueChanged)
TV.addSubview(datepicker!)
}
...
button click action/animate
...
// часть вида talbe //
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
var rows = 1
if datePickerIndexPath != nil {rows += 1 }
return rows
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "DatePickerCell", for: indexPath)
cell.textLabel?.text = dateFormatter.string(from: (datepicker?.date)!)
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
ddn.setTitle("\(datePickerIndexPath!.row)", for: .normal)
//when i click the space, an error occurs in this part//
}
}