我正在开发一个信使应用程序。我有一个自定义单元格的tableview,其中包含一个imageview和几个标签。
我想在点击不同的UI元素时加载不同的控制器。具体来说,我希望在轻触imageView时加载controllerA,在选择其余行时加载controllerB。
我在imageview顶部放置了一个按钮,并创建了一个customcellclass委托,以便在借助该按钮轻触imageview时通知我的tableviewcontroller - 现在我应该如何获取轻触行imageView的索引路径?
// MyCustomClassMethod
-(IBAction)loadProfileButtonTapped:(id)sender{
[self.loadProfileDelegate takeMeToProfile];
}
//我正在我的tableview控制器中实现这个方法
-(void)takeMeToProfile{
//need indexpath here
}
答案 0 :(得分:1)
假设您的表视图名为tableView,并且您在获取发件人的方法中获得了分略图像的引用:
CGPoint imagePosition = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:imagePosition];
答案 1 :(得分:0)
您不需要indexpath
来实现您想要达到的目标。添加这些自定义视图时,只需为其提供标记,以便在触发按钮单击事件时标识它们。
答案 2 :(得分:0)
在自定义单元格的委托方法中传递对self
的引用是很常见的,这样您就可以从父VC跟踪indexPath
。尝试切换这个:
-(void)takeMeToProfile
用这个:
-(void)customCell:(CustomCell*)cell didTapTakeMeToProfile;
在CustomCell
文件中实施此功能后,您只需拨打[self.loadProfileDelegate customCell:self didTapTakeMeToProfile]
即可。现在你有了对单元格的引用,你可以从父VC调用tableView:indexPathForCell:
并使用你认为合适的结果NSIndexPath
。