2017-12-15 10 views
-1

私はInterface BuilderのビューにUITableViewを追加したiOSアプリケーションを持っています。そして、私はこのようなUIViewControllerでテーブルビューを設定します。テーブルビューのメソッドが呼び出されることはありません

tableView.rowHeight = UITableViewAutomaticDimension 
tableView.estimatedRowHeight = 50 
tableView.delegate = self 
tableView.dataSource = self 
tableView.contentInset = UIEdgeInsets(top: 25, left: 0, bottom: 0, right: 0) 

そして、私はまた、次のメソッド実装:ただし、メソッドが呼び出されることはありません

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    print("test table") 
    let course = self.courses[indexPath.row] 
    let cell = tableView.dequeueReusableCell(withIdentifier: CourseTableViewCell.identifier, for: indexPath) as! CourseTableViewCell 

    cell.make(course, location: self.currentLocation) 

    return cell 
} 

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

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return courses.count 
} 

を、テーブルビューが表示されていません私のコンソールにエラーはありませんか?私はこれを追加しようとしている間に逃したものがありますか?

ありがとうございました。コメントでリクエストを1として

  • courses配列はcourses配列がreloadData()
+0

IBOutletとしてコードにTableViewをリンクしましたか? –

+0

@ReinierMelianはい、リンクされています: '@IBOutlet weak var tableView:UITableView!' –

+0

'tableView.reloadData()'はどこで呼び出しますか? – vadian

答えて

1

ではなく、あなたのコードでこれを試してみてください:

@IBOutlet weak var tableView: UITableView!{ 
    didSet{ 
      self.tableView.delegate = self 
      self.tableView.dataSource = self 
      } 
    } 

は、あなたのコントローラが2つのプロトコルのために適合していることを確認してください:

UITableViewDelegate,UITableViewDataSource 

はあなたの細胞は0 PTSを持っていないことを確認するために、このメソッドを追加します高さ:

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 
    return 80 // adjust height of row upon need 
    } 
+1

アウトレットのプロパティオブザーバは良い提案ではありません。最も適切な方法は、Interface Builderでデータソースとデリゲートを接続することです – vadian

1

前に満たされている

  • ちょうど "heightForRowAtIndexPath" を実装しようと
  • 空ではありません 私は思いますあなたのテーブルは適切に再ロードされますが、セルの制約のために UITableViewAutomaticDimensionは機能しません。 2 - 必ずコースを作るが適切に割り当てられ、デリゲートメソッドをnumberOfSectionsまたはnumberOfRowsInSectionのようなメソッドにブレークポイントを設定することによって実行された場合は、テストする必要がありますコース

    0

    の項目をチェックするnumberOfRowsAtIndexPathでデバッガを使用しています。

    ブレークポイントがヒットしなかった場合、デリゲートは正しく設定されません。

    +0

    になります。ブレークポイントに達すると、 –

    +0

    numberOfRowsメソッド内のコースの数/長さはどのくらいですか? – Milander

    関連する問題