I've programmatically created a UITableView and added UISwitch to it's cell accessory view.
This is my code for UISwitch in cell accessory view in cellForRowAtIndexPath
method.
UISwitch *accessorySwitch = [[UISwitch alloc]initWithFrame:CGRectZero]; [accessorySwitch setOn:NO animated:YES]; [accessorySwitch addTarget:self action:@selector(changeSwitch:) forControlEvents:UIControlEventValueChanged]; cell.accessoryView = accessorySwitch;
This is the method which is called after the button is clicked.
- (void)changeSwitch:(UISwitch *)sender{ UITableViewCell *cell = (UITableViewCell *)[sender superview]; NSIndexPath *indexPath = [self.filterTableView indexPathForCell:cell]; NSLog(@"%ld",(long)indexPath); ……………. My other code……. }
I am able to print the index path value in iOS 6 But in iOS 7 it prints nil,
Am i missing anything in iOS 7 or there is some other approach to get the indexPath in iOS 7
Thanks, Arun.
add an 'indexPath` property to the custom table cell. initialize it in cellForRowAtIndexPath. move the tap handler from the view controller to the cell implementation. use the delegation pattern to notify the view controller about the tap event, passing the index path.
You can get the indexPath of the last row in last section like this. NSIndexPath *indexPath = [NSIndexPath indexPathForRow:(numberOfRowsInLastSection - 1) inSection:(numberOfSections - 1)]; Here, numberOfSections is the value you return from numberOfSectionsInTableView: method.
Swift version: 5.6. Index paths describe an item's position inside a table view or collection view, storing both its section and its position inside that section.
NSLog(@"%ld",(long)indexPath);
is wrong this will print the pointer address of indexPath
try using following codes
CGPoint center= sender.center; CGPoint rootViewPoint = [sender.superview convertPoint:center toView:self.filterTableView]; NSIndexPath *indexPath = [self.filterTableView indexPathForRowAtPoint:rootViewPoint]; NSLog(@"%@",indexPath);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With