问题描述
我以编程方式创建了一个UITableView,并将UISwitch添加到它的单元附件视图中。
I've programmatically created a UITableView and added UISwitch to it's cell accessory view.
这是我在 cellForRowAtIndexPath
方法的单元附件视图中的UISwitch代码。
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…….
}
我可以在iOS 6中打印索引路径值
但是在iOS 7中它打印为nil,
I am able to print the index path value in iOS 6But in iOS 7 it prints nil,
我在iOS 7中遗漏了什么,或者在iOS 7中有其他方法来获取indexPath
Am i missing anything in iOS 7 or there is some other approach to get the indexPath in iOS 7
谢谢,
Arun。
Thanks,Arun.
推荐答案
NSLog(@ %ld,(long)indexPath);
错误,这将打印indexPath的指针地址
NSLog(@"%ld",(long)indexPath);
is wrong this will print the pointer address of indexPath
尝试使用以下代码
CGPoint center= sender.center;
CGPoint rootViewPoint = [sender.superview convertPoint:center toView:self.filterTableView];
NSIndexPath *indexPath = [self.filterTableView indexPathForRowAtPoint:rootViewPoint];
NSLog(@"%@",indexPath);
这篇关于IOS 7 - 如何从放置在UITableViewCell中的按钮获取indexPath的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!