iOS开发技能iOS DeveloperiOS开发笔录

ios开发获取button背后的cell

2016-11-07  本文已影响681人  卡卡罗忒

ios的tableView是平时开发中用到的最常用的控件之一,通过自定义cell我们可以实现各种各样的效果.在上面添加各种我们想要的控件.这次就讲述如何获点击cell上的button从而获取到后面的cell.

//首先为button添加点击事件
    [button addTarget:self action:@selector(buttonAction:event) forControlEvents:(UIControlEventTouchUpInside)];
//这里要传两个参数,后面解释第二个参数
-(void)buttonAction:(UIButton*)sender event:(id)event
{    
    NSSet *touches =[event allTouches];   
    UITouch *touch =[touches anyObject];   
    CGPoint Position = [touch locationInView:self.tableview];   
    NSIndexPath *indexPath= [self.tableview indexPathForRowAtPoint:Position];    
    if (indexPath!= nil)    {
  //这个indexpath就是button后面cell的indexpath
    }
  }

先看给button添加点击事件的方法,那里传的参数是不能够自定义,第一个都是button本身都知道,那么如果再传两个参数会是什么?
做了个测试,如下图


测试.png

可以看到,我穿了三个参数,在控制台输出的时候第一个是UIButton,第二个和第三个都是UITouchesEvent,也就是说第二个参数以后都是UITouchesEvent,这个touchesEvent可以说是个UITouch的集合,里面的数量取决于是几个手指点击的,我用两个手指点击,效果如下.

两个手指点击控制台输出
NSSet *touches =[event allTouches];
UITouch *touch =[touches anyObject];
CGPoint currentTouchPosition = [touch locationInView:self.tableview];

现在整体思路就很清晰了,通过第二个参数,拿到触摸事件,通过他来确定点击的位置在tableView中的坐标系,最后用indexPathForRowAtPoint这个方法来取到indexpath

还是最后一种有电水瓶.

转载请注明作者,谢谢~
鑫 胖

上一篇下一篇

猜你喜欢

热点阅读