在tableview中切换cellForRowAtIndexPath

时间:2016-01-15 12:30:09

标签: ios swift uitableview switch-statement return-value

我想在tabview cellForRowAtIndexPath中使用switch函数来改变表的内容

场景:标志变量应该选择案例并返回它的内容。

错误:我必须使用返回单元格外侧的开关功能,如果我使用它仍然给我错误。

switch (flag){
    case 0 :

        let cell:mineCell = tableView.dequeueReusableCellWithIdentifier("mineCell")as! mineCell
        // User Name on cells
        cell.usernameLabel.text = creator[indexPath.row]

        //function

            else {
                print(error)
            }
        }

        return cell
        break

    case 1 :
        let cell:followingCell = tableView.dequeueReusableCellWithIdentifier("followingCell")as! followingCell
        // User Name on cells
        cell.followingNameLabel.text = creator[indexPath.row]

    //ffuntion

            else {
                print(error)
            }
        }

        return cell

        break
    case 2 :

        //funtion 
        break
    default:
        break

    }



 //*HERE i have to use return cell but if i use it will give me error in somehow * 

}

3 个答案:

答案 0 :(得分:1)

cellForRow方法

中尝试此操作
switch (flag){

 case 0 :

        let cell:mineCell = tableView.dequeueReusableCellWithIdentifier("mineCell")as! mineCell
        // User Name on cells
        cell.usernameLabel.text = creator[indexPath.row]

        //function

            else {
                print(error)
            }
        }

        return cell
        break

    case 1 :
        let cell:followingCell = tableView.dequeueReusableCellWithIdentifier("followingCell")as! followingCell
        // User Name on cells
        cell.followingNameLabel.text = creator[indexPath.row]

    //ffuntion

            else {
                print(error)
            }
        }

        return cell

        break
    }     
}

希望它有所帮助。

答案 1 :(得分:0)

您的cellForRowAtIndexPath必须在每种可能的情况下返回UITableViewCell对象或其子类。因此,您必须在默认情况下返回UITableViewCell()以消除错误。

答案 2 :(得分:-1)

首先,您需要在全局声明UITableViewCell对象。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell:UITableViewCell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell

        switch (flag) {
            case 0 :
            {
                cell = tableView.dequeueReusableCellWithIdentifier("mineCell")as! mineCell
                // User Name on cells
                cell.usernameLabel.text = creator[indexPath.row]
                //function
                if()
                {
                }else {
                    print(error)
                }
               return cell
            }

                break
            case 1 :
            {

            cell = tableView.dequeueReusableCellWithIdentifier("followingCell")as! followingCell
            // User Name on cells
            cell.followingNameLabel.text = creator[indexPath.row]

            //ffuntion
                if()
                {
                }
            else {
                print(error)
            }
           return cell
        }
        break
            default:
                break
        }


    return cell
    }