我在UITableViewCell中添加了一个UITableViewCell,我希望这个按钮调用我已经知道的关于调用的"didSelectRowAtIndexPath“
[self tableView:self.tableView didSelectRowAtIndexPath:indexpath];但是,我无法获得索引路径的问题,并尝试了
[self.Tableview indexPathForRowAtPoint:[self.view convertPoint:[sender center] fromView:self.Tableview]]方法,但它返回相同的CGPoint,有帮助吗?
发布于 2012-08-14 11:22:28
首先,您不应该亲自直接调用didSelectRowAtIndexPath。它是一个委托方法,表视图应该调用它。
相反,创建一个单独的方法来完成您想要做的事情,并从didSelectRowAtIndexPath调用它。
其次,您可以获得这样的索引路径:
UIButton* button = (UIButton*) sender;
UITableViewCell *cell = (UITableViewCell*)button.superview.superview;
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];这是因为如果一切都是以标准方式设置的,则按钮的superview应该是单元格的contentView,而这应该是单元格的子视图。
发布于 2012-08-14 11:43:12
据我所知,最好的方法是将行号作为tableViewCell按钮的标记值,因此当您单击按钮时,它的操作将被调用,您将从该操作中得到发件人id sender_id是UIButton实例,获取它的标记值。
你有UIButton *testButton;
Its Selector is @selector (testButtonPressed:)因此,当按下tableViewCell的按钮时,它将调用@selector (testButtonPressed:)
-(void)testButtonPressed:(id)sender
{
NSLog(@"index is %d", sender. tag);
}https://stackoverflow.com/questions/11951137
复制相似问题