Скрыть DatePicker при нажатии на другую ячейку? - PullRequest
0 голосов
/ 03 ноября 2019

Я играю со сборщиками дат, следуя «Разработке приложений с помощью Swift» от Apple. В главе 4.9, стр. 700.

Чего я не могу понять, так это как скрыть мои средства выбора даты, когда я выбираю другую ячейку, которая не является одним из двух средств выбора даты. Они хорошо прячутся, если вы нажмете на них, но я бы хотел скрыть их, выбрав любую другую ячейку, если мой взгляд.

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    tableView.deselectRow(at: indexPath, animated: true)

    switch (indexPath.section, indexPath.row) {

    case (checkInDatePickerCellIndexPath.section, checkInDatePickerCellIndexPath.row - 1):

        if isCheckInDatePickerShown {
            isCheckInDatePickerShown = false
        } else if isCheckOutDatePickerShown {
            isCheckOutDatePickerShown = false
            isCheckInDatePickerShown = true
        } else {
            isCheckInDatePickerShown = true
        }

        tableView.beginUpdates()
        tableView.endUpdates()

    case (checkOutDatePickerCellIndexPath.section, checkOutDatePickerCellIndexPath.row - 1):

        if isCheckOutDatePickerShown {
            isCheckOutDatePickerShown = false
        } else if isCheckInDatePickerShown {
            isCheckInDatePickerShown = false
            isCheckOutDatePickerShown = true
        } else {
            isCheckOutDatePickerShown = true
        }

            tableView.beginUpdates()
            tableView.endUpdates()

    default:
        break
        }

Я новичок в этом деле и просто хочу начатьобхватывая его головой.

1 Ответ

0 голосов
/ 04 ноября 2019

Вы можете принудительно применить это поведение к вашему случаю по умолчанию, а это означает, что если ячейка с касанием не является регистрацией или извлечением, сборщик скрывается.

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

  tableView.deselectRow(at: indexPath, animated: true)

  switch (indexPath.section, indexPath.row) {

  case (checkInDatePickerCellIndexPath.section, checkInDatePickerCellIndexPath.row - 1):

     if isCheckInDatePickerShown {
         isCheckInDatePickerShown = false
     } else if isCheckOutDatePickerShown {
         isCheckOutDatePickerShown = false
         isCheckInDatePickerShown = true
     } else {
         isCheckInDatePickerShown = true
     }

     tableView.beginUpdates()
     tableView.endUpdates()

  case (checkOutDatePickerCellIndexPath.section, checkOutDatePickerCellIndexPath.row - 1):

     if isCheckOutDatePickerShown {
         isCheckOutDatePickerShown = false
     } else if isCheckInDatePickerShown {
         isCheckInDatePickerShown = false
         isCheckOutDatePickerShown = true
     } else {
         isCheckOutDatePickerShown = true
     }

     tableView.beginUpdates()
     tableView.endUpdates()

  default:

     isCheckOutDatePickerShown = false
     isCheckInDatePickerShown = false

     tableView.beginUpdates()
     tableView.endUpdates()

     break
 }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...