我有一个tableView,它显示在我的故事板和预览中,但当我在我的设备上运行它时,它不会显示。在调试时,我意识到问题似乎是它从不运行cellForRowAt indexPath函数。为什么这段代码没有执行那个函数,我希望它输出2行。
编辑:正在调用numberOfRowsInSection并为data.count返回2
这是我的ViewController代码:
import UIKit
class WRViewController: PopupViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var wrNo: UILabel!
@IBOutlet weak var tableView: UITableView!
struct Contact {
var name:String
var type:String
var phone:String
}
var data:[Contact]=[Contact]()
override func viewDidLoad() {
super.viewDidLoad()
data.append(Contact(name:"John Doe",type:"Builder",phone:"1234567890"))
data.append(Contact(name:"Jane Doe",type:"Contractor",phone:"0987654321"))
tableView.delegate = self
tableView.dataSource = self
tableView.reloadData()
}
override func prepareToOpen() {
super.prepareToOpen()
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return data.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "contactCell", for: indexPath)
let contactView = data[indexPath.row]
cell.text = contactView.name
cell.image = contactView.type
cell.text = contactView.phone
return cell
}
}
答案 0 :(得分:4)
问题是您没有提供足够的自动布局约束来确定此表视图的高度。因此它没有高度。因此,它不需要显示任何细胞。因此,它不会询问任何细胞。
故事板和/或视图调试器已经非常清楚地警告您这是一个问题,但您没有引起任何注意。好吧,注意!添加高度约束或顶部和底部约束,以使此表视图具有高度。
(请注意,问题可能不仅仅是表格视图,而是与垂直固定的内容有关。但是您没有提供任何相关信息,因此从这里无法说出来。)< / p>