后来断点调试发现在ios7上
[self.tableview indexPathForCell:myCell] 返回了nil
在ios8中使用了
- (void)selecttop:(id)sender{
if ([sender isKindOfClass:[UIButton class]]) {
UIView *view = sender;
AppListCell *myCell = (AppListCell *)view.superview.superview;
NSIndexPath * cellPath = [self.tableview indexPathForCell:myCell];
}
-
google下是ios7 上cell上面还多了一个UITableViewWrapperView 具体可以参见:http://blog.csdn.net/u013604612/article/details/23120615
stackoverflaw 中 http://stackoverflow.com/questions/19282304/uitableview-indexpathforcell-ios6-v-ios7
有一个很好的处理方法
- (void)selecttop:(id)sender{
if ([sender isKindOfClass:[UIButton class]]) {
UIView *view = sender;
while (![view isKindOfClass:[UITableViewCell class]]) {
view = [view superview];
}
AppListCell *myCell = (AppListCell *)view;
NSIndexPath * cellPath = [self.tableview indexPathForCell:myCell];
}
标记下
真的是个坑!!!
据说ios6上也是两个superview 就可以获取到!!!!