如何获取所选行的索引路径?
How to get indexpath of the selected row?
我正在开发 Messenger 应用程序。我有一个带有自定义单元格的表格视图,其中包含一个图像视图和几个标签。
我想在点击不同的 UI 元素时加载不同的控制器。具体来说,我希望在点击 imageView 时加载 controllerA,在选择行的其余部分时加载 controllerB。
我在 imageview 顶部放置了一个按钮,并制作了一个 customcellclass 委托,以便在借助该按钮点击 imageview 时通知我的 tableviewcontroller - 现在我应该如何获取点击行 imageView 的索引路径??
//我的自定义类方法
-(IBAction)loadProfileButtonTapped:(id)sender{
[self.loadProfileDelegate takeMeToProfile];
}
//我正在我的表视图控制器中实现这个方法
-(void)takeMeToProfile{
//need indexpath here
}
假设您的 table 视图被命名为 tableView,并且您在获取发件人的方法中获得了点击图像的引用:
CGPoint imagePosition = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:imagePosition];
All the credit to this so answer!
您不需要 indexpath
来实现您想要实现的目标。当您添加这些自定义视图时,只需为它们提供一个标签,以便在触发按钮单击事件时识别它们。
在自定义单元格的委托方法中传递对 self
的引用是很常见的,这样您就可以从父 VC 追踪 indexPath
。试试切换这个:
-(void)takeMeToProfile
有了这个:
-(void)customCell:(CustomCell*)cell didTapTakeMeToProfile;
当您在 CustomCell
文件中实现它时,您只需调用 [self.loadProfileDelegate customCell:self didTapTakeMeToProfile]
。现在您有了对单元格的引用,您可以从父级 VC 调用 tableView:indexPathForCell:
并使用您认为合适的结果 NSIndexPath
。
我正在开发 Messenger 应用程序。我有一个带有自定义单元格的表格视图,其中包含一个图像视图和几个标签。
我想在点击不同的 UI 元素时加载不同的控制器。具体来说,我希望在点击 imageView 时加载 controllerA,在选择行的其余部分时加载 controllerB。
我在 imageview 顶部放置了一个按钮,并制作了一个 customcellclass 委托,以便在借助该按钮点击 imageview 时通知我的 tableviewcontroller - 现在我应该如何获取点击行 imageView 的索引路径??
//我的自定义类方法
-(IBAction)loadProfileButtonTapped:(id)sender{
[self.loadProfileDelegate takeMeToProfile];
}
//我正在我的表视图控制器中实现这个方法
-(void)takeMeToProfile{
//need indexpath here
}
假设您的 table 视图被命名为 tableView,并且您在获取发件人的方法中获得了点击图像的引用:
CGPoint imagePosition = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:imagePosition];
All the credit to this so answer!
您不需要 indexpath
来实现您想要实现的目标。当您添加这些自定义视图时,只需为它们提供一个标签,以便在触发按钮单击事件时识别它们。
在自定义单元格的委托方法中传递对 self
的引用是很常见的,这样您就可以从父 VC 追踪 indexPath
。试试切换这个:
-(void)takeMeToProfile
有了这个:
-(void)customCell:(CustomCell*)cell didTapTakeMeToProfile;
当您在 CustomCell
文件中实现它时,您只需调用 [self.loadProfileDelegate customCell:self didTapTakeMeToProfile]
。现在您有了对单元格的引用,您可以从父级 VC 调用 tableView:indexPathForCell:
并使用您认为合适的结果 NSIndexPath
。