当前位置:  开发笔记 > 编程语言 > 正文

如何使用Swift 3正确实现静态单元格

如何解决《如何使用Swift3正确实现静态单元格》经验,为你挑选了2个好方法。

我实际上找不到一个教程,告诉我如何构建一个使用静态单元格的应用程序; 可点击的单元格.根据几个过时的发布和对象c答案,我把一些东西放在一起.我的问题是,当我点击一个单元格时,我得到的staticDemoTableCell是没有成员present.

我在UIViewController中嵌入了一个表控制器.对于那个单元格(目前只有一个),我创建了一个类:

class staticDemoTableCell: UITableViewCell, UITableViewDelegate {
  @IBOutlet weak var tableView: UITableView! 

  override func awakeFromNib() {
    [...]
    tableView.delegate = self
  }

  func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    print("clicked") // Works when the cell is clicked
    // self.present() do not work. I need to present another viewcontroller when this cell is clicked
  }

}

有些东西不合适,因为每个单元都是一个类?

我真的需要知道我是否采用了正确的方法来做到这一点.我真正想要的更多是这样的.你见过ie:分组交易星期一:列表,星期二:列表等.每个单元格都可以点击,就像iOS设备的设置一样.任何指针都将非常感激.



1> J Arango..:

所以你可以做到以下几点.设置表格视图,然后使单元格保持静态,一旦完成,您需要确保知道将要有多少部分.这取决于您的设计或您想要实现的目标.

然后你可以做这样的事情:

如果您有多个部分,并且部分1有多个单元格.第2节只有一个单元格.

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    switch indexPath.section {
    case 1:
        switch indexPath.row {
        case 0:
            // Do something
        case 1:
            // Do something 
        default:
            break
        }
    case 2:
        // Do something
    default:
        break
    }
}

如果您只有一个包含两个单元格的部分,则可以执行以下操作:

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    switch indexPath.row {
    case 0:
        // Do something
    case 1:
        // Do something
    default:
        break
    }
}

我希望这有助于解决您的问题.祝好运



2> vadian..:

如果表视图包含静态单元格,则更容易:

在Interface Builder中,选择表视图并设置ContentStatic Cells

在控制器类中创建IBOutlets和IBActions并连接它们.

不需要实现表视图数据源方法和子类化单元.

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有