我有一个自定义单元格,其中有两个文本字段和一个标签。我添加了TapGestuRecognizer
来捕获标签上的用户点击事件。但是,我想知道如何才能检测出选择标签的CustomCell的索引?
var tapGesture = new UITapGestureRecognizer (Tap);
myLabel.AddGestureRecognizer (tapGesture);
myLabel.UserInteractionEnabled = true;
public void Tap(UITapGestureRecognizer r)
{
var vc = new myViewController (this);
var nc = new NavigationController (vc);
nc.PreferredContentSize = new System.Drawing.SizeF (200, 300);
popupoverController = new UIPopoverController (nc);
popupoverController.PresentFromRect (myLabel.Bounds, myLabel, UIPopoverArrowDirection.Any, true);
}
答案 0 :(得分:0)
从您的标签转换触摸点(或CGPointZero,它确实无关紧要)(您可以从点击识别器获取它 - 它具有view
属性)到表视图坐标
func convertPoint(_ point: CGPoint, toView view: UIView?) -> CGPoint
或者,您可以使用UITapGestureRecognizer的方法来实现此
func locationInView(_ view: UIView?) -> CGPoint
然后在该点找到cell的indexPath
func indexPathForRowAtPoint(_ point: CGPoint) -> NSIndexPath?
答案 1 :(得分:0)
如果手势识别器属于表格视图单元格,请将indexPath属性添加到表格视图单元格子类中:
@property (nonatomic, strong) NSIndexPath *indexPath;
然后在返回单元格之前在cellForRowAtIndexPath:
方法中设置它。
然后根据self.indexPath
属性处理表格视图单元格类中的触摸。
以同样的方式,你也可以添加一个指向“父”表视图控制器的指针(weak
这次,以便不创建循环引用),然后你可以访问它的公共属性,如数组你用。填充表格视图。