0
日付ピッカーより上の行をクリックするたびに、日付ピッカーが表示されないように非表示になりません。むしろ、行をクリックすると、ダークグレーに恒久的にハイライト表示され、最初に何かをクリックするときに典型的です。なぜこうなった?なぜ私のdatePickerは隠れていないのですか?なぜ私のDatePickerは隠されていませんか?
class TableViewController: UITableViewController {
@IBOutlet weak var detailLabel: UILabel!
@IBOutlet weak var datePicker: UIDatePicker!
private var datePickerHidden = false
override func viewDidLoad() {
super.viewDidLoad()
datePickerChanged()
self.tableView.backgroundColor = UIColor.lightGray
}
@IBAction func valueChanged(_ sender: UIDatePicker) {
let formatter = DateFormatter()
formatter.dateStyle = .short
formatter.timeStyle = .short
detailLabel.text = formatter.string(from:sender.date)
}
func datePickerChanged() {
detailLabel.text = DateFormatter.localizedString(from: datePicker.date, dateStyle: DateFormatter.Style.short, timeStyle: DateFormatter.Style.short)
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
if indexPath.row == 0 {
toggleDatepicker()
}
tableView.deselectRow(at: indexPath as IndexPath, animated: true)
}
private func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if !datePickerHidden && indexPath.row == 1 {
return 0
}
else {
return 100
}
}
private func toggleDatepicker() {
datePickerHidden = !datePickerHidden
tableView.beginUpdates()
tableView.endUpdates()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}}
お勧めはありますか?このような
移動 'datePickerHidden = datePickerHidden' tableView.beginUpdates'後の() '!。 'datePickerHidden'が' true'で初期化されているかどうかを確認してください。 – byJeevan
私はこれを試して運がありませんでした。 –
ピッカーをどのように表示していますか? tableviewの最初の行をクリックすると、 'toggleDatepicker'だけが呼び出されます。あなたのコードはこのように書かれています。あなたはストーリーボードまたはXIBのピッカーを隠しています – Vinodh