我的表视图中有两个自定义的可重用表视图单元格。第一间牢房,我希望它随时都在。第二个单元格及其后的单元格将返回从mysql数据库传递的计数。

 // return the amount of cell numbers
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return posts.count
    }


// cell config
 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    if indexPath.row < 1 {
        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! InfoCell
        //set the data here
        return cell

    } else {

    let Postcell = tableView.dequeueReusableCell(withIdentifier: "PostCell", for: indexPath) as! PostCell

        let post = posts[indexPath.row]
        let image = images[indexPath.row]
        let username = post["user_username"] as? String
        let text = post["post_text"] as? String


        // assigning shortcuts to ui obj
        Postcell.usernameLbl.text = username
        Postcell.textLbl.text = text
        Postcell.pictureImg.image = image

        return Postcell

    }

} // end of function

我的第一个单元格在那里,post.count也是,但是出于某种原因posts.count缺少一个post,我相信这是因为第一个单元格。有人能帮我吗?提前谢谢。

最佳答案

您需要调整从numberOfRowsInSection返回的值来解释额外的行。您需要调整用于访问posts数组中的值的索引,以处理额外的行。
但更好的解决方案是使用两个部分。第一部分应该是你的额外一行,第二部分是你的帖子。

func numberOfSections(in tableView: UITableView) -> Int {
    return 2
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    if section == 0 {
        return 1
    } else {
        return posts.count
    }
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    if indexPath.section == 0 {
        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! InfoCell
        //set the data here

        return cell
    } else {
        let Postcell = tableView.dequeueReusableCell(withIdentifier: "PostCell", for: indexPath) as! PostCell

        let post = posts[indexPath.row]
        let image = images[indexPath.row]
        let username = post["user_username"] as? String
        let text = post["post_text"] as? String


        // assigning shortcuts to ui obj
        Postcell.usernameLbl.text = username
        Postcell.textLbl.text = text
        Postcell.pictureImg.image = image

        return Postcell
    }
}

关于swift - 在TableView中显示两个可重复使用的单元格-Swift 3,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46030166/

10-14 20:11
查看更多