选择Datepicker单元格时禁用tableView

时间:2020-01-03 16:01:12

标签: swift xcode uitableview uidatepicker

我有工具帕当选择表视图的单元中的一个,其弹出一个日期选择器。我希望在显示日期选择器时禁用表视图。

UITableViewCell:

func populateWithField(fieldType: EnrollmentDetailsFields?, value: String?) {
        self.fieldType = fieldType
         ....
        textField.text = value
       datePicker.datePickerMode = .date
        datePicker.backgroundColor = UIColor.UANeutralWhite
        datePicker.addTarget(self, action: #selector(datePickerValueChanged(_:)), for: .valueChanged)
        if let toolBarView = self.getInputAccessoryButtonsForTypes([KeyboardAccessoryButtonTypes.previous, KeyboardAccessoryButtonTypes.next, KeyboardAccessoryButtonTypes.clear, KeyboardAccessoryButtonTypes.done], target: self, doneButtonAction: #selector(doneButtonClicked), clearButtonAction: #selector(clearButtonClicked), nextButtonAction: #selector(nextButtonClicked), previousButtonAction: #selector(previousButtonClicked)) {
            datePicker.leadingAnchor.constraint(equalTo: self.datePickerWithToolBar.leadingAnchor, constant: 0).isActive = true
                   datePicker.trailingAnchor.constraint(equalTo: self.datePickerWithToolBar.trailingAnchor, constant: 0).isActive = true
                   datePicker.bottomAnchor.constraint(equalTo: self.datePickerWithToolBar.bottomAnchor, constant: 0).isActive = true
        toolBarView.bottomAnchor.constraint(equalTo: datePicker.topAnchor, constant: 0).isActive = true
            toolBarView.heightAnchor.constraint(equalToConstant: 40).isActive = true
            textField.inputView = datePicker
            textField.inputAccessoryView = toolBarView
            let tap = UITapGestureRecognizer(target: self, action: #selector(handleTap(_:)))
                datePickerWithToolBar.addGestureRecognizer(tap)
        }
    }

下面如何显示日期选择器。我希望禁用日期选择器后面的屏幕。

I am trying to create something like this

1 个答案:

答案 0 :(得分:0)

您可以在像这样的单元格自定义类中进行回调

var callBackEnabled:((Bool) ->())?

然后做

callBackEnabled?(true/false)

然后在cellForRowAt里面做

 cell.callBackHide = { [weak self] enabled in
     self.tableView?.isEnabled = enabled 
 }

或尝试

guard let table = self.superView?.superView as? UITableView else { return }
table.isEnabled = true/false
相关问题