我怎样才能通过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)