Wie komme ich UITableViewCell
durch indexPath
? So was:
Ich verwende die UIActionSheet
, wenn ich auf Bestätigen UIButton
klicke, möchte ich den Zellentext ändern.
Den nowIndex definiere ich als Eigenschaft
- (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)
{
}
}
}
}
iphone
uitableview
nsindexpath
Phpxiaoxin
quelle
quelle
dataSource
Eigenschaft Ihrer tableView aufrufen, aber normalerweise ist dies der Fallself
.Schließlich erhalte ich die Zelle mit dem folgenden Code:
UITableViewCell *cell = (UITableViewCell *)[(UITableView *)self.view cellForRowAtIndexPath:nowIndex];
Weil die Klasse erweitert ist
UITableViewController:
@interface SearchHotelViewController : UITableViewController
Das
self
ist also "SearchHotelViewController".quelle
Hier ist ein Code zum Abrufen einer benutzerdefinierten Zelle aus dem Indexpfad
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:2 inSection:0]; YourCell *cell = (YourCell *)[tblRegister cellForRowAtIndexPath:indexPath];
Für Swift
let indexpath = NSIndexPath(forRow: 2, inSection: 0) let currentCell = tblTest.cellForRowAtIndexPath(indexpath) as! CellTest
Für Swift 4 (für Sammlungsansicht)
let indexpath = NSIndexPath(row: 2, section: 0) let cell = self.colVw!.cellForItem(at: indexpath as IndexPath) as? ColViewCell
quelle
Für Swift 4
let indexPath = IndexPath(row: 0, section: 0) let cell = tableView.cellForRow(at: indexPath)
quelle
Sie können den folgenden Code verwenden, um die letzte Zelle abzurufen.
UITableViewCell *cell = [tableView cellForRowAtIndexPath:lastIndexPath];
quelle
Ich bin nicht ganz sicher, was Ihr Problem ist, aber Sie müssen den Parameternamen so angeben.
-(void) changeCellText:(NSIndexPath *) nowIndex{ UILabel *content = (UILabel *)[[(UITableViewCell *)[(UITableView *)self cellForRowAtIndexPath:nowIndex] contentView] viewWithTag:contentTag]; content.text = [formatter stringFromDate:checkInDate.date]; }
quelle
Swift 3
let indexpath = NSIndexPath(row: 0, section: 0) let currentCell = tableView.cellForRow(at: indexpath as IndexPath)!
quelle
Schnell
let indexpath = IndexPath(row: 0, section: 0) if let cell = tableView.cellForRow(at: indexPath) as? <UITableViewCell or CustomCell> { cell.backgroundColor = UIColor.red }
quelle