【问题标题】:How to use inputview through UITableViewRowAction swift如何通过 UITableViewRowAction swift 使用 inputview
【发布时间】:2016-07-20 12:04:54
【问题描述】:

我尝试实现this 指南并将其嵌入到内部:

let doneItem = UITableViewRowAction(style: .Normal, title: "  Done  ") { (action, indexPath) -> Void in }

但分配“inputView”是我坚持的地方。

我尝试将它分配给 tableView 的输入视图,在文档中,它说:

"这个只读属性的值为 nil。需要自定义视图来收集用户输入的响应者对象应该将此属性重新声明为读写并使用它来管理其自定义输入视图。 "

所以我尝试按照this 指南重新声明 tableView 的 inputView,但我似乎没有得到任何结果。

帮助。

【问题讨论】:

    标签: ios swift uitableview inputview uitableviewrowaction


    【解决方案1】:

    我想出了一个解决方法。如果有更好的方法来实现这一点,我想知道。但如果有人也在寻找这个解决方案,我就是这样做的。

    我通过界面生成器添加了一个 UITextView 并检查了属性检查器下视图类别中的隐藏属性,这样用户就不会意外激活文本字段。那么:

    func datePickerSetupTest() {
        let dateView = UIView(frame: CGRectMake(0, 100, 320, 160))
        datePicker = UIDatePicker(frame: CGRectMake(0, 0, 320, 160))
        datePicker.datePickerMode = .Date
        dateView.addSubview(datePicker)
        inputTextField.inputView = dateView
        let doneButton = UIButton (frame: CGRectMake(100, 100, 100, 44))
        doneButton.setTitle("Done", forState: UIControlState.Normal)
        doneButton.addTarget(self, action: "datePickerSelected", forControlEvents: UIControlEvents.TouchUpInside)
        doneButton.backgroundColor = UIColor .blueColor()
        inputTextField.inputAccessoryView = doneButton
    }
    func datePickerSelected() {
        print("selectedRow: \(selectedRow!)")
        inputTextField.resignFirstResponder()
    }
    

    在 UITableViewRowAction 内部:

     tableView.editing = false
     self.selectedRow = indexPath.row
     self.inputTextField.becomeFirstResponder()
    

    我正在使用变量 selectedView: Int?传递选定的行来操作该行中的数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-27
      • 2015-11-08
      • 2014-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多