根据button取tableView的层级结构
2016-04-11 本文已影响70人
Molary
1.方法一:
NSSet *touches =[event allTouches];
UITouch *touch =[touches anyObject];
CGPoint currentTouchPosition = [touch locationInView:_mainTableView];
NSIndexPath *indexPath= [_mainTableView indexPathForRowAtPoint:currentTouchPosition];
if (indexPath!= nil)
{
DXSiteImmdeiateOrderTableViewCell *cell = [_mainTableView cellForRowAtIndexPath:indexPath];
NSInteger integer = [cell.subNumberLabel.text integerValue];
NSInteger integerNumber = integer+1;
cell.subNumberLabel.text = [NSString stringWithFormat:@"%ld",integerNumber];
}
2.使用获取层级的方法,此方法不建议使用,需要增加许多判断
DXSiteImmdeiateOrderTableViewCell *cell = (DXSiteImmdeiateOrderTableViewCell *)sender.superview.superview;
//总的来说 6取 一次superView 7取3次superView 8取2次superView
NSIndexPath *indexPath = [_mainTableView indexPathForCell:cell];
if (!indexPath||indexPath == nil) {
cell = (DXSiteImmdeiateOrderTableViewCell *)sender.superview.superview.superview.superview;
indexPath = [_mainTableView indexPathForCell:cell];
if (!indexPath||indexPath == nil) {
cell = (DXSiteImmdeiateOrderTableViewCell *)sender.superview;
indexPath = [_mainTableView indexPathForCell:cell];
}
}
NSInteger integer = [cell.subNumberLabel.text integerValue];
NSInteger integerNumber = integer+1;
cell.subNumberLabel.text = [NSString stringWithFormat:@"%ld",integerNumber];
但是这种方法在7的真机上 有时会出现问题 不如第一种方法真机运行稳定