如何得到自定义UITableViewCell中的按钮所在的cell的indexPath.row

Posted CityPe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何得到自定义UITableViewCell中的按钮所在的cell的indexPath.row相关的知识,希望对你有一定的参考价值。

在自定义UITableViewCell中创建了一个按钮。

想在点击该按钮时知道该按钮所在的cell在TableView中的行数。就是cell的 indexPath.row

两种方法都很好。
-(IBAction):(id)sender
{
    NSLog(@"MyRow:%d",[self.table indexPathForCell:((TableViewCell*)[[sender   superview]superview])].row); //这个方便一点点,不用设置tag。
    NSLog(@"MyRow:%d",((TableViewCell*)[[sender superview]superview]).tag);
    //这个需要加载cell时设置tag.不过也很方便。
}

-(UITableViewCell *)tableView:(UITableView *)tableView
        cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //删除cell.contentView中所有内容,避免以下建立新的重复
    int i = [[cell.contentView subviews] count] - 1;
    for(;i >= 0 ; i--)
    {
         [[[cell.contentView subviews] objectAtIndex:i] removeFromSuperview];
    }


    //添加button
    UIButton *but = [UIButton buttonWithType:UIButtonTypeCustom];
    [but setBackgroundImage:[UIImage imageNamed:@"delete.png"] forState:UIControlStateNormal];
    [but setFrame:CGRectMake(280, 10, 30, 30)];
    [but setAlpha:0.8];
    [but addTarget:self action:@selector(del:) forControlEvents:UIControlEventTouchUpInside];
    [cell.contentView addSubview:but];


    //设置Tag为cell 对应的indexPath row
    for(id view in subviews)
    {
         if([view isKindOfClass:[UIButton class]])
         {
             [view setTag:[indexPath row]];
             //[cell.contentView bringSubviewToFront:view];
         }
    }
}



//Button事件
-(void)del:(id)sender
{
    for(UITableViewCell *cell in visiblecells)
    {
        if(cell.tag == button.tag)
    {
    //button.tag就是对应的[indexPath.row
 
转自:http://blog.sina.com.cn/s/blog_708663ad010153ul.html

以上是关于如何得到自定义UITableViewCell中的按钮所在的cell的indexPath.row的主要内容,如果未能解决你的问题,请参考以下文章

自定义 UITableViewCell 中的 UITextField 意外发现 nil

如何清除包含在重复使用的自定义 UITableViewCell 中的 WKWebview?

如何使用 Interface Builder 中的自定义 UITableViewCell?

自定义UITableViewCell中的UITextField意外发现为零

如何从 UITableViewCell 中的自定义 UIButton 中删除触摸延迟

如何在 swift 中使自定义 UITableViewCell 中的链接可点击