我有一个Viewcontroller
class PlacesVC: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
// MARK: - Table view data source
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 4
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: .default, reuseIdentifier: "Cell")
cell.textLabel?.text = "Row \(indexPath.row)"
return cell
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "toMap", sender: kill)
}
}
我的单元格ID也为Cell
构建并运行该应用程序时,我不断获得空表
我希望这样得到4行。
如何调试为什么我的行没有显示?
答案 0 :(得分:3)
首先,请确保已将tableView的delegate
和dataSource
属性设置为该viewController的实例(否则将不会调用这些方法)。 (如果ViewController是从TableViewController继承的,则可以跳过此步骤。)
第二件事,您正在为每行初始化一个新的单元格实例,而不是重复使用它。
因此,请替换此行:
let cell = UITableViewCell(style: .default, reuseIdentifier: "Cell")
具有:
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
第三件事:确保您已经从IB设置了正确的课程。
最后一件事:将样式从“自定义”更改为“基本”,以使用默认的textLabel
。
答案 1 :(得分:2)
答案 2 :(得分:0)
您可以尝试
HolidayService2 hs1= new HolidayService2();
HolidayService2Soap hss1= hs1.getHolidayService2Soap();
ArrayOfCountryCode acc = hss1.getCountriesAvailable();
system.out.println(acc.getCountryCode());
如果您希望它动态化
func tableView(_ tableView: UITableView,
heightForRowAt indexPath: IndexPath) -> CGFloat {
return 60
}
答案 3 :(得分:-1)
delegate
和dataSource
。
viewDidLoad()
中,如下所示:
tableView.register({your cell class}, forCellReuseIdentifier:"identifier")
初始化单元格对象
tableView.dequeueReusableCell(WithIdentifier:,forIndexPath:)
只要您的单元格没有使用任何类,就不需要注册您的类。 您只需通过以下方式初始化单元格对象:
tableView.dequeueReusable(CellWithIdentifier:)