我怎样才能通过indexPath获得一个uitableViewCell?

我怎样才能通过indexPath得到一个UITableViewCell ? 喜欢这个:

我使用UIActionSheet ,当我点击确认UIButton我想改变单元格文本。

nowIndex我定义为一个属性

 - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { if (buttonIndex == 0) { NSInteger section = [nowIndex section]; NSInteger row = [nowIndex row]; NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease]; formatter.dateFormat = @"yyyy-MM-dd"; if (section == 0) { if (row == 0) { } else if (row == 1) { UILabel *content = (UILabel *)[[(UITableView *)[actionSheet ] cellForRowAtIndexPath:nowIndex] viewWithTag:contentTag]; content.text = [formatter stringFromDate:checkInDate.date]; } else if (row == 2) { } } } } 
 [(UITableViewCell *)[(UITableView *)self cellForRowAtIndexPath:nowIndex] 

会给你uitableviewcell。 但是我不确定你到底在问什么! 因为你有这个代码,你仍然问如何获得uitableviewcell。 一些更多的信息将有助于回答你:)

ADD:这里是一个替代的语法,在没有转换的情况下实现相同的function。

 UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:nowIndex]; 

最后,我使用下面的代码获取单元格:

 UITableViewCell *cell = (UITableViewCell *)[(UITableView *)self.view cellForRowAtIndexPath:nowIndex]; 

因为这个类是扩展的UITableViewController:

 @interface SearchHotelViewController : UITableViewController 

所以, self是“SearchHotelViewController”。

这是从索引path获取自定义单元格的代码

  NSIndexPath *indexPath = [NSIndexPath indexPathForRow:2 inSection:0]; YourCell *cell = (YourCell *)[tblRegister cellForRowAtIndexPath:indexPath]; 

对于Swift

 let indexpath = NSIndexPath(forRow: 2, inSection: 0) let currentCell = tblTest.cellForRowAtIndexPath(indexpath) as! CellTest 

您可以使用下面的代码来获取最后一个单元格。

 UITableViewCell *cell = [tableView cellForRowAtIndexPath:lastIndexPath]; 

我不太清楚你的问题是什么,但你需要像这样指定参数名称。

 -(void) changeCellText:(NSIndexPath *) nowIndex{ UILabel *content = (UILabel *)[[(UITableViewCell *)[(UITableView *)self cellForRowAtIndexPath:nowIndex] contentView] viewWithTag:contentTag]; content.text = [formatter stringFromDate:checkInDate.date]; } 

迅速

 let indexpath = IndexPath(row: 0, section: 0) if let cell = tableView.cellForRow(at: indexPath) as? <UITableViewCell or CustomCell> { cell.backgroundColor = UIColor.red } 

Swift 3

 let indexpath = NSIndexPath(row: 0, section: 0) let currentCell = tableView.cellForRow(at: indexpath as IndexPath)! 

对于Swift 4

  let indexPath = IndexPath(row: 0, section: 0) let cell = tableView.cellForRow(at: indexPath)