如何在UITableView

时间:2015-08-29 09:11:56

标签: ios swift uitableview custom-cell

我已经在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)是唯一一个加载/显示的单元格。

2 个答案:

答案 0 :(得分:1)

我认为该部分中的行数是错误的。从您的变量名称我怀疑它应该是

myProfileFeedDM.profileFeedArray.count + 1

请注意,在Feed数组中,您必须使用indexPath.row - 1来获取数组的正确索引,因为第一行用于配置文件。

答案 1 :(得分:-1)

我没有看到代码中的任何原因导致它无效。 尝试调试cellForRowAtIndexPath方法以查看每次调用时indexPath的值是什么 (或者只是将println ("IndexPath: \(indexPath)")放到你的cellForIndexPath方法中)

PS:但只要您只需要一次配置文件单元格 - 我建议将ProfileCell移动到表格或节目标题中 我认为这会更合乎逻辑。