【发布时间】:2019-09-09 07:52:10
【问题描述】:
我正在尝试构建一个视图,该视图显示四个不同的tableViews,每个tableView 具有不同的tableViewCells。我想评估我在ViewController 中实现的cellForRowAt 函数中的不同tableViewCell 类,但它似乎不起作用。
我将UITableViewDataSource, UITableViewDelegate 实现为超类,并为viewDidLoad 中的每个表视图编写了delegate 和datasource。
import UIKit
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate{
//Outlets
@IBOutlet weak var scheduleView: UIView!
@IBOutlet weak var scheduleTableView: UITableView!
@IBOutlet weak var goalsView: UIView!
@IBOutlet weak var goalsTableView: UITableView!
@IBOutlet weak var toDoView: UIView!
@IBOutlet weak var toDoTableView: UITableView!
@IBOutlet weak var motivationView: UIView!
@IBOutlet weak var motivationTableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
scheduleView.clipsToBounds = true
scheduleView.layer.cornerRadius = 15
goalsView.clipsToBounds = true
goalsView.layer.cornerRadius = 15
toDoView.clipsToBounds = true
toDoView.layer.cornerRadius = 15
motivationView.clipsToBounds = true
motivationView.layer.cornerRadius = 15
// Delegate & Datasources
scheduleTableView.delegate = self
scheduleTableView.dataSource = self
goalsTableView.delegate = self
goalsTableView.dataSource = self
toDoTableView.delegate = self
toDoTableView.dataSource = self
motivationTableView.delegate = self
motivationTableView.dataSource = self
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var realCell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "scheduleCell", for: indexPath)
if tableView == scheduleTableView{
var cell = tableView.dequeueReusableCell(withIdentifier: "scheduleCell", for: indexPath)
cell.textLabel?.text = "Text"
}else if tableView == goalsTableView{
var cell = tableView.dequeueReusableCell(withIdentifier: "goalsCell", for: indexPath)
cell.textLabel?.text = "Text"
}else if tableView == toDoTableView{
var cell = tableView.dequeueReusableCell(withIdentifier: "toDoCell", for: indexPath)
cell.textLabel?.text = "Text"
}else if tableView == motivationTableView{
var cell = tableView.dequeueReusableCell(withIdentifier: "motivationCell", for: indexPath) as! motivationTableViewCell
cell.textLabel?.text = "Text"
cell.motivationImage.image = #imageLiteral(resourceName: "placeholderImage")
cell.motivationLabel.text = "TestText"
realCell = cell
}
return realCell
}
如果我运行此代码,realCell 变量将返回 nil
相反,它应该返回给定的单元格。
【问题讨论】:
标签: swift uitableview delegates tableview datasource