【问题标题】:Datepicker won't display in custom UITableViewCell classDatepicker 不会显示在自定义 UITableViewCell 类中
【发布时间】:2018-01-07 05:38:59
【问题描述】:

我尝试保留一个单独的自定义单元格类,但不知何故,我从情节提要拖入其中的日期选择器在我运行后拒绝显示。

import UIKit

class eventViewController: UIViewController,UITextViewDelegate,UIScrollViewDelegate,UITableViewDelegate,UITableViewDataSource  {
   @IBOutlet weak var timeTableView: UITableView!
   @IBOutlet weak var eventText: UITextView!
   @IBOutlet weak var scrollView: UIScrollView!

   override func viewDidLoad() {
      super.viewDidLoad()
      // Do any additional setup after loading the view.
      self.eventText.delegate = self
      self.scrollView.delegate = self
      self.timeTableView.delegate = self
      self.timeTableView.dataSource = self
      self.timeTableView.register(startDateCell.self, forCellReuseIdentifier: "startDateCell")   
   }

   func numberOfSections(in tableView: UITableView) -> Int {
      return 1
   }

   func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
      return 3
   }

   func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
      let cell = tableView.dequeueReusableCell(withIdentifier: "startDateCell", for: indexPath) as! startDateCell
      //cell.startDatePicker.date = Date()
      //cell.text = "anything"
      return cell
   }
}

class startDateCell: UITableViewCell { 
   @IBOutlet weak var startDatePicker: UIDatePicker!
}

我在自定义单元格中将插座连接到我的 datePicker,我还在检查器中将我的自定义单元格类定义为 startDateCell,我在我的视图控制器中注册了我的自定义单元格。它会抛出一个运行时错误,说 datepicker 是 nil。

谁能解释为什么它没有出现?

【问题讨论】:

    标签: ios swift uitableview uidatepicker


    【解决方案1】:

    您能否从 viewDidLoad() 中删除以下代码,并确保您已在 storyboard 中将自定义 tableviewcell 的重用标识符设置为“startDateCell”并重试?

    self.timeTableView.register(startDateCell.self, forCellReuseIdentifier: "startDateCell")

    【讨论】:

    • 我自己想通了,但我想知道为什么注册单元会导致错误?我应该在什么条件下使用它?免费积分,非常感谢你,如果你能解决这个问题。
    • 注册单元会覆盖故事板中的设置。结果,链接到情节提要中的自定义单元格的日期选择器出口将被忽略。在此处参考类似的帖子:stackoverflow.com/questions/24833391/…。并引用hackingwithswift.com/example-code/uikit/… 中的 Paul Hudson 的话,“如果您想将 register() 与 Swift 类一起使用,您需要提供一个表格视图单元格类作为其第一个参数。如果您的单元格完全在代码中定义,这将非常有用”。希望这会有所帮助:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多