Datepicker 不会显示在自定义 UITableViewCell 类中

Posted

技术标签:

【中文标题】Datepicker 不会显示在自定义 UITableViewCell 类中【英文标题】:Datepicker won't display in custom UITableViewCell class 【发布时间】: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。

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

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

以上是关于Datepicker 不会显示在自定义 UITableViewCell 类中的主要内容,如果未能解决你的问题,请参考以下文章

数据未显示在 UITableView 的自定义单元格中

在自定义 Django 表单中验证和显示错误

搜索视图控制器推送 VC 时,活动指示器不会出现在自定义 UIAlertView 的中心

在自定义单元格中点击 UIButton 不会调用 didSelectRowAtIndexPath

在自定义容器视图中旋转时 AutoLayout 不会调整视图大小?

在自定义 collectionview 单元格中填充图像而不会闪烁