TableView单元格

时间:2016-07-06 17:01:24

标签: ios swift uitableview storyboard

我正在尝试构建一个看起来非常类似于默认iOS日历应用的演示应用。我几乎已经完成了,但我不完全确定在TableView上应用自定义单元格的最佳做法。

查看屏幕截图(见下文),默认应用程序具有给定日期所有事件的TableView。我应该如何将这种造型应用到我的细胞中?

目前,我有这个(基本上用我的viewDidAppear方法调用:

  • 月份标题作为在Storyboard
  • 中定义的标签
  • 我以编程方式应用的日历包
  • 默认iOS Tableview,也以编程方式应用于此

因为TableView是以编程方式应用的,所以我不完全确定去哪里。下面是我的TableView代码:

let cellReuseIdentifier = "eventCell"
let offsetY = {% Some fancy calculation here to get offset pos %}
let height = {% Just as above but to determine remaining height %}

tableView.frame = CGRectMake(0, offsetY, screenSize.width, height)
tableView.delegate = self
tableView.dataSource = self
tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: cellReuseIdentifier)

view.addSubview(tableView)

具体的数据源方法:

  func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
      return selectedEvents.count
  }

  func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

      // create a new cell if needed or reuse an old one
      let cell = tableView.dequeueReusableCellWithIdentifier(cellReuseIdentifier)!
      let event = selectedEvents[indexPath.row]

      // set the text from the data model
      cell.textLabel?.text = "\(event.startTime) - \(event.endTime) | \(event.summary)"

      return cell
  }

  func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
      print("You tapped cell number \(indexPath.row).")
  }

任何指导将不胜感激:)

iOS Calendar

1 个答案:

答案 0 :(得分:0)

看起来应该是这样的:

tableView.registerClass(CustomCellClass.self, forCellReuseIdentifier: "CustomCellClasId")

然后:

internal func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    if let cell = tableView.dequeueReusableCellWithIdentifier("CustomCellClassId", forIndexPath: indexPath) as? CustomCellClass{
            // set up cell
            return cell
        }
}