我的数据未加载到我的UITableView
中,我不知道为什么,据我所知,我已经完成了本书的所有内容。
我在故事板中创建了TableView
和TableViewCell
,添加了图片和三个标签。
结构是:ViewController
> TableView
> TableViewCell
> Image
,标签
TableViewCell
已与其TableViewCell.class
由于我未在输出屏幕中输入任何内容,它甚至没有加载我的NIB
?
import UIKit
class MyCell: UITableViewCell, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var cellTitle: UILabel!
@IBOutlet weak var cellDate: UILabel!
@IBOutlet weak var cellDescription: UILabel!
@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var cellImage: UIImageView!
override func awakeFromNib() {
super.awakeFromNib()
print ("Did Load")
tableView.delegate = self
tableView.dataSource = self
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 7
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "myCellID", for: indexPath)
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 70
}
}
答案 0 :(得分:1)
import UIKit
class MyCell: UITableViewCell{ //<-- make sure your cell has this class and connect the outlets
@IBOutlet weak var cellTitle: UILabel!
@IBOutlet weak var cellDate: UILabel!
@IBOutlet weak var cellDescription: UILabel!
@IBOutlet weak var tableView: UITableView! //<-- what is this doing here?? remove this
@IBOutlet weak var cellImage: UIImageView!
}
class myViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
class Cell{
let title: String
//do this for every UIView in your cell
init(title: String //continue...){
self.title = title
//continue
}
}
var cells = [Cell]()
@IBOutlet weak var myTableView //<-- set here the outlet
override func viewDidLoad() {
print ("Did Load")
cells.append(Cell(//initialize))
myTableView.delegate = self
myTableView.dataSource = self
myTableView.reloadData()
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 7
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "myCellID", for: indexPath) as! MyCell //<-- ADDED
cell.cellTitle = cells[indexPath.row].title
//continue
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 70
}
答案 1 :(得分:1)
tableview的所有委托和数据源方法 ** [** func numberOfSections(在tableView:UITableView中) - &gt; Int,
func tableView(_ tableView:UITableView,numberOfRowsInSection section:Int) - &gt; Int,
func tableView(_ tableView:UITableView,cellForRowAt indexPath:IndexPath) - &gt; UITableViewCell,
func tableView(_ tableView:UITableView,heightForRowAt indexPath:IndexPath) - &gt; CGFloat的**] **
必须在viewcontroller中,而不是在tableviewcell中。
答案 2 :(得分:1)
设置委托和数据源应该在视图控制器中。 tableView出口以及所有委托和数据源方法也应该位于视图控制器中。尝试在您的单元类中创建一个配置单元格方法,您可以在其中设置要用于更新单元格内容视图中的UI对象的数据,并创建单元格类型转换为您的自定义类 - 在行的单元格中视图控制器类中的方法。
答案 3 :(得分:0)
class is MyCell : UITableViewCell
但你说Structure是:ViewController&gt; TableView&gt; TableViewCell&gt;图片,标签。
你应该在ViewController中添加tableview。
答案 4 :(得分:0)
您需要将table cell class或nib注册到tableview。验证您是否已完成此操作。