2017-08-11 8 views
0

SWRevealViewControllerを使用していますが、セルを作成してサイドメニューに空白が表示されたときにアプリを実行すると、ただし、セルの1つをクリックすると、セルが表示されます。あなたがそれをクリックしても上部の大きなセルは表示されません。ここに私のコードです。SWRevealViewControllerクリックするまでセルが空白になる

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return menuTitle.count+3 
} 
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let index = indexPath.row 
    var defCell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as UITableViewCell 
    switch (index) { 
     case 0: 
      let cell = tableView.dequeueReusableCell(withIdentifier: "profileCell") as! profileCell 
      cell.nameLbl.text = "Name Here" //need to pull name from the database here 
      cell.profileImg.image = UIImage(named: "face")! //pull from db 
      print(cell) 
      return cell 
     case 1: 
      let cell = tableView.dequeueReusableCell(withIdentifier: "labelCell") as! labelCell 
      cell.menuLabel.text = "For Sale" 
      return cell 
     case 2,3,4: 
      let cell = tableView.dequeueReusableCell(withIdentifier: "titleCells") as! titleCells 
      cell.cellImg.image = iconImg[indexPath.row - 2] 
      cell.cellName.text! = menuTitle[indexPath.row - 2] 
      return cell 
     case 5: 
      let cell = tableView.dequeueReusableCell(withIdentifier: "labelCell") as! labelCell 
      cell.menuLabel.text = "Profile" 
      //labelCell.darkLine //cahnge line color to orange 
      return cell 
     case 6,7,8,9,10,11: 
      print(indexPath.row) 
      let cell = tableView.dequeueReusableCell(withIdentifier: "titleCells") as! titleCells 
      cell.cellImg.image = iconImg[indexPath.row - 3] 
      cell.cellName.text! = menuTitle[indexPath.row - 3] 
      print(menuTitle[indexPath.row - 3]) 
      return cell 
     case 12: 
      //change line color 
      let cell = tableView.dequeueReusableCell(withIdentifier: "titleCells") as! titleCells 
      cell.cellImg.image = iconImg[indexPath.row - 3] 
      cell.cellName.text! = menuTitle[indexPath.row - 3] 
      return cell 
     case 13: 
      let cell = tableView.dequeueReusableCell(withIdentifier: "titleCells") as! titleCells 
      cell.cellImg.image = iconImg[indexPath.row - 3] 
      cell.cellName.text! = menuTitle[indexPath.row - 3] 
      return cell 
     default: 
      return defCell 

    } 

スイッチのステートメント以外のヒントやアプローチが役立ちます。前もって感謝します。

答えて

1

スイッチのケースに入り、cellをデキューすると、もう1つのセルがdefCellにデキューされているという問題があります。私は過去にそれに問題があった。私は理由を知らないが、何らかの理由でtableViewを駄目にする。それはあなたが見ることができるように、この

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    if indexPath.row == 0 { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "profileCell") as! profileCell 
     cell.nameLbl.text = "Name Here" //need to pull name from the database here 
     cell.profileImg.image = UIImage(named: "face")! //pull from db 
     print(cell) 
     return cell 
    } else if indexPath.row == 1 || indexPath.row == 5 { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "labelCell") as! labelCell 
     if indexPath.row == 1 { 
      cell.menuLabel.text = "For Sale" 
     } else { 
      cell.menuLabel.text = "Profile" 
     } 
     return cell 
    } else { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "titleCells") as! titleCells 
     if indexPath.row <= 4 { 
      cell.cellImg.image = iconImg[indexPath.row - 2] 
      cell.cellName.text! = menuTitle[indexPath.row - 2] 
     } else { 
      cell.cellImg.image = iconImg[indexPath.row - 3] 
      cell.cellName.text! = menuTitle[indexPath.row - 3] 
     } 
     return cell 
    } 
} 

ような何かをすることです解決する一つの方法は、このアプローチでは、あなたがウィザードだ

+0

時にデキューつ以上のセルが存在になることはありません。ありがとう! – ttorbik

+0

喜んで助けになる – Malik

関連する問題