当选择Datepicker单元时禁用tableView

问题描述 投票:0回答:1

我有一个带有工具par的日期选择器,当选择了表格视图的某个单元格时,该选择器就会弹出。我希望在显示日期选择器时禁用表视图。

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

swift xcode uitableview uidatepicker
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.