根据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的真机上 有时会出现问题 不如第一种方法真机运行稳定

上一篇下一篇

猜你喜欢

热点阅读