我已经在Stack Overflow上搜索了这个问题的答案并找到了一些有用的答案,但我的情况有所不同,因为该部分中的行数要根据数组中列出的项目数来确定。我正在尝试创建一个使用两个自定义单元格的表。第一个单元格显示配置文件信息,而第二个单元格显示新闻源。
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return myProfileDM.profileArray.count
//return myProfileFeedDM.profileFeedArray.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) ->
UITableViewCell {
if indexPath.row == 0 {
let cell = tableView.dequeueReusableCellWithIdentifier("bio", forIndexPath:indexPath) as! ProfileTableViewCell
cell.followerNumber!.text = myProfileDM.profileArray[indexPath.row].followerNumberInterface
cell.followers!.text = myProfileDM.profileArray[indexPath.row].followersInterface
cell.following!.text = myProfileDM.profileArray[indexPath.row].followingInterface
cell.followingNumber!.text = myProfileDM.profileArray[indexPath.row].followingNumberInterface
return cell
}
else{
let cell = tableView.dequeueReusableCellWithIdentifier("feed", forIndexPath:indexPath) as! FeedTableViewCell
//let cell: FeedTableViewCell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: "feed")
cell.profileFeedLabel!.text = myProfileFeedDM.profileFeedArray[indexPath.row].profileFeed
cell.profileDateLabel!.text = myProfileFeedDM.profileFeedArray[indexPath.row].profileDate
return cell
}
}
}
当我运行程序时,第一个单元格(带有identifier-bio)是唯一一个加载/显示的单元格。
答案 0 :(得分:1)
我认为该部分中的行数是错误的。从您的变量名称我怀疑它应该是
myProfileFeedDM.profileFeedArray.count + 1
请注意,在Feed数组中,您必须使用indexPath.row - 1
来获取数组的正确索引,因为第一行用于配置文件。
答案 1 :(得分:-1)
我没有看到代码中的任何原因导致它无效。
尝试调试cellForRowAtIndexPath方法以查看每次调用时indexPath的值是什么
(或者只是将println ("IndexPath: \(indexPath)")
放到你的cellForIndexPath方法中)
PS:但只要您只需要一次配置文件单元格 - 我建议将ProfileCell移动到表格或节目标题中 我认为这会更合乎逻辑。