buttonによるtableViewの階層構造

1504 ワード

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の本体で問題が発生する場合があり、第1の方法では本体が安定して動作しない場合があります.