Syl*_*lar 5 uitableview tableviewcell swift swift3
我实际上找不到一个教程,告诉我如何构建一个使用静态单元格的应用程序; 可点击的单元格.根据几个过时的发布和对象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
}
}
Run Code Online (Sandbox Code Playgroud)
有些东西不合适,因为每个单元都是一个类?
我真的需要知道我是否采用了正确的方法来做到这一点.我真正想要的更多是这样的.你见过ie:分组交易星期一:列表,星期二:列表等.每个单元格都可以点击,就像iOS设备的设置一样.任何指针都将非常感激.
所以你可以做到以下几点.设置表格视图,然后使单元格保持静态,一旦完成,您需要确保知道将要有多少部分.这取决于您的设计或您想要实现的目标.
然后你可以做这样的事情:
如果您有多个部分,并且部分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
}
}
Run Code Online (Sandbox Code Playgroud)
如果您只有一个包含两个单元格的部分,则可以执行以下操作:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
switch indexPath.row {
case 0:
// Do something
case 1:
// Do something
default:
break
}
}
Run Code Online (Sandbox Code Playgroud)
我希望这有助于解决您的问题.祝好运
如果表视图仅包含静态单元格,则更容易:
Content为Static CellsIBOutlets和IBActions并连接它们.| 归档时间: |
|
| 查看次数: |
14417 次 |
| 最近记录: |