2016-06-17 83 views
2

我试图覆盖tableView单元格的方法reloadRowAtIndexPath如何覆盖reloadRowsAtIndexPath?

我想要做的一样,当你重写cellForRowAtIndexPath为:

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) 
      } 
     } 

    } 

以这种方式:

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它永远不会调用重写的版本。

你知道如何解决它吗?

回答

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

在这里,当有一个插入我想检查先前插入的单元格,然后显示其图像。你认为它会起作用吗? –