TableView的问题…如何知道行号

what I am doing

我正在做一个项目,我正在使用一个tableView。 在该tableView我有一个删除button在每一行..

what I want

我想要的是,当我按下button…有1秒的延迟。 之后该行应该被删除。在这个延迟时间里,我按下的那一行的删除button应该是隐藏的。

My Problem

那么我能够做到这一点,但有一个问题。 当我按任何行的删除button…只有最后一行的删除button隐藏…

Root of the problem -According to my view
那么我已经分配cellForRowAtIndexPath ..中的删除button,我已经分配了它的方法…当我按下button…该方法被调用..在该方法中,我已经隐藏了删除button…

我的意思是如何知道在哪个行删除button应该隐藏…

My Question
当我按删除button如何知道应该隐藏哪一行。现在它每一次隐藏在最后一行..

build议请…

在你的tableView:cellForRowAtIndexPath方法中使用如下。

 [myButton addTarget:self action:@selector(ButtonAction:) forControlEvents:UIControlEventTouchUpInside]; myButton.tag = indexPath.row ; 

执行下面的方法,

 -(void) ButtonAction:(id) sender { UIButton* myButton = (UIButton*)sender; myButton.hidden = YES; //Delete the row at index (myButton.tag) } 

我build议你使用自定义单元格,而不是直接使用UITableViewCell。

您可以试着将每个删除button的标签设置为行号,然后在button单击方法中访问该标签,以了解哪个button被点击。

这是另一个不依赖于标签的选项:

 -(void)buttonAction:(id)sender { UIButton *button = (UIButton*)sender; UITableViewCell *cell = [[button superview] superview]; [button setHidden:YES]; [self.tableView performSelector:@selector(deleteCell:) withObject:cell afterDelay:0.5] -(void)deleteCell:(UITableViewCell*)cell { [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:cell] withRowAnimation:UITableViewRowAnimation{YourChoiceHere} } 

试试这个:首先为cellForRowAtIndexPath函数中的每个单元设置一个唯一的标签:

  [cell setTag:10000+[[userInfo objectForKey:@"id"] intValue]]; 

病房后,为删除使用function如下:

 -(void)deleteRow:(id)sender{ NSIndexPath *indexPath = [NSIndexPath indexPathForRow:[sender tag] inSection:0]; [YOURTABLEVIEW deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:0]; 

}

希望这会解决你的问题。

要知道行号,你可以通过indexpath.row得到它