美文网首页
根据button取tableView的层级结构

根据button取tableView的层级结构

作者: Molary | 来源:发表于2016-04-11 10:35 被阅读70次

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

    相关文章

      网友评论

          本文标题:根据button取tableView的层级结构

          本文链接:https://www.haomeiwen.com/subject/qkhilttx.html