indexpath.row在tableView heightForRowAt中的3之后重置

时间:2017-07-26 09:04:17

标签: swift uitableview heightforrowatindexpath indexpath

嗨喜欢标题说index.row永远不会到4而不是它开始到[2,0]。我的tableView有5行。我不知道它什么时候停止工作,但我确定在添加timeIndex行之前它确实有效。

这是“输入此处的地址”字段,我在显示

时出现问题
f(static_cast<bool>(a));

tableview

控制台输出

Console output

3 个答案:

答案 0 :(得分:0)

您可以查看numberOfRowsInSection中的内容

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

}

在numberOfRowsInSection

中设置的行数应该是错误的

答案 1 :(得分:0)

每个部分都有不同的行数。 这就是你的indexPath永远不会达到4的原因。 [2,0]表示第2节中的第0行。 您可以按照以下部分检查行: -

    override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    if indexPath.section == 0{

    }else if indexPath.section == 1{

    }else if indexPath.section == 2{
         if indexPath.row == 0{
            // here is your fifth row return height for fifth row
         }
    }

}

答案 2 :(得分:0)

我发现问题我忘了更新numberOfRowsInsideSection函数中的行数

 override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // #warning Incomplete implementation, return the number of rows
    // Change from [1,4,1] to [1,5,1]
    let numberOfRowsInSection: [Int] = [1,5,1]
    var rows: Int = 0

    if section < numberOfRowsInSection.count {
        rows = numberOfRowsInSection[section]
    }

    return rows
}