2016-06-17 38 views
2

私はreloadRowAtIndexPathテーブルビューのセルのメソッドをオーバーライドしようとしています。reloadRowsAtIndexPathを上書きする方法は?

私はあなたがcellForRowAtIndexPathをオーバーライドするときと同じ操作を行いたい:

func tableView(tableView: UITableView, reloadRowsAtIndexPaths indexPath: NSIndexPath) -> UITableViewCell 
    { 
     print("job") 
      if(isNotUserFirstMessage(indexPath)) 
      { 
       return notUserFirstMessageCell(indexPath, showImage: false) 
      } 
      else 
      { 
       return notUserNotFirstMessageCell(indexPath, showImage: false) 
      } 
    } 

が、私はself.myTable.reloadRowsAtIndexPathを使用する場合には、オーバーライドバージョンを呼び出すことはありません:そのようにし

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
    { 
     if(isUserTalking(indexPath)) 
     { 
      return userMessageCell(indexPath) 
     } 
     else 
     { 
      if(isNotUserFirstMessage(indexPath)) 
      { 
       return notUserFirstMessageCell(indexPath) 
      } 
      else 
      { 
       return notUserNotFirstMessageCell(indexPath) 
      } 
     } 

    } 

あなたはそれを修正する方法を知っていますか?

答えて

0

reloadRowsAtIndexPathsは実際にはこの意味ではありません。代わりに tableView(_:willDisplayCell:forRowAtIndexPath:)を使用します。例:

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) { 
    print("job") 
    if isNotUserFirstMessage(indexPath) { 
     configureNotUserFirstMessageCell(cell, showImage: false) 
    } else { 
     configureNotUserNotFirstMessageCell(cell, showImage: false) 
    } 
} 
+0

ここで試してみますが、このメソッドを特定の行でどのように呼び出すことができますか? –

+0

テーブルビューデリゲートに追加するだけで、セルが表示されたときに自動的に呼び出されます。 –

+0

ここで、挿入があるとき、前に挿入されたセルをチェックして、そのイメージを表示したいのですか?あなたはそれがうまくいくと思いますか? –

関連する問題