程序分析
先走
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
再走
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
var rowNum = 0
if section == 0 {
//食材数据
if serialModel?.data?.data?.count > 0 {
rowNum = 3
}
}else if section == 1 {
//评论
if commentModel?.data?.data?.count > 0 {
rowNum = (commentModel?.data?.data?.count)!
}
}
return rowNum
}
与
cellForRowAtIndexPath
一一对应
在里面进行了
条件判断,
在 cell 里, 则 无需判断。
然后走
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
与
viewForHeaderInSection
一一对应
接着走
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = UITableViewCell()
if indexPath.section == 0 {
//获取模型对象
let dataModel = serialModel?.data?.data![serialIndex]
//食材课程的数据
if indexPath.row == 0 {
//视频的cell
cell = createVideoCellForTableView(tableView, atIndexPath: indexPath, withModel: dataModel!)
}
else if indexPath.row == 1 {
//课程名称和描述
cell = createCoureCellForTableView(tableView, atIndexPath: indexPath, withModel: dataModel!)
}
else if indexPath.row == 2 {
//集数
cell = createSerialCellForTableView(tableView, atIndexPath: indexPath, withModel: serialModel!)
}
}else if indexPath.section == 1 {
程序真解
我TM真能犯错误。
应该这样,
var cell = tableView.dequeueReusableCellWithIdentifier(newsCellId) as? HPageNewsTableViewCell
if cell == nil {
cell = NSBundle.mainBundle().loadNibNamed("HPageNewsTableViewCell", owner: nil, options: nil).last as? HPageNewsTableViewCell
}
我搞成了这样。
// var cell = tableView.dequeueReusableCellWithIdentifier(newsCellId , forIndexPath: indexPath) as? HPageNewsTableViewCell
if cell == nil {
cell = NSBundle.mainBundle().loadNibNamed("HPageNewsTableViewCell", owner: nil, options: nil).last as? HPageNewsTableViewCell
}