我使用了这段代码从我的UIButton中获得一个UITableViewCell,但是它没有工作。所以我已经调试了半个小时才知道superview里面是什么。
UIButton *button = (UIButton *)sender;
UITableViewCell* cell = (UITableViewCell*)button.superview.superview.superview;
UITableView* tableView = (UITableView*) cell.superview.superview;
NSIndexPath* indexPath = [tableView indexPathForCell:cell];对我来说,现在的问题是:我如何知道将来UITableView或其他人的层次结构是什么?难道没有一个列表,我可以看到我需要多少超视率,而不需要对它进行100次测试,并设置BreakPoints来查看它所指的类?
问候
发布于 2014-07-05 18:12:03
你可能最终会选择superview层次结构,但你知道这不是个好主意,因为苹果随时都可能改变他们的表视图层次结构。有更好的方法可以获得表视图单元格的索引路径,在其中一个单元格中有一个按钮。
UITableViewCell,并为子类中的按钮实现操作方法。子类可以将委托方法调用到希望了解按钮抽头的任何对象。因此,希望这能让你对你之前做过的事情有一个想法。正如您所说,计算出superview层次结构是很费时的,而且随时都可能发生变化。
发布于 2014-07-05 17:59:18
如果要检查多个superview层次结构,请检查如下所示:
UIView * view=(UIView*)sender;
while ((view= [view superview])) {
if(viewisKindOfClass:[UITableView class]) {
//your code
return;
}
}https://stackoverflow.com/questions/24588986
复制相似问题