我使用-(NSUInteger)numberOfTouches
类的UIGestureRecognizer
方法来计算UITableViewController
中的触摸次数。 (my earlier question)
虽然我能够正确计算它们,但是它覆盖触摸事件的方式只能在很短的时间内调用tableView的didSelectRowAtIndexPath
方法。
长按,单元格会突出显示,但didSelectRowAtIndexPath
不会被触发。
请指导应该做什么。 感谢。
答案 0 :(得分:0)
有几件事要尝试。首先,您的直接问题是手势识别器可能正在等待您是否要添加水龙头/触摸以满足其射击要求。您还可以添加一个长触摸识别器来调用您的didSelectRowAtIndexPath,但我会首先在2010年首先观看手势识别器上非常好的WWDC会话,因为您是一名付费开发人员,这会让您对如何正确理解实现多个手势识别器,以便在您需要时触发它们。
答案 1 :(得分:0)
从viewDidLoad()调用它我也实现了monotouch的这个代码,它给出了关于longPressGestureRecognizer的想法。
void AddGestureRecognizersToImage (UIImageView imgView)
{
var longPressGesture = new UILongPressGestureRecognizer (this, new Selector
("ShowResetMenu"));
imgView.AddGestureRecognizer (longPressGesture);
}
[Export("ShowResetMenu")]
void ShowResetMenu (UILongPressGestureRecognizer gestureRecognizer)
{
if (gestureRecognizer.State == UIGestureRecognizerState.Began)
{
var menuController = UIMenuController.SharedMenuController;
var resetMenuItem = new UIMenuItem ("Reset", new Selector ("ResetImage"));
var location = gestureRecognizer.LocationInView (gestureRecognizer.View);
BecomeFirstResponder ();
menuController.MenuItems = new [] { resetMenuItem };
menuController.SetTargetRect (new RectangleF (location.X, location.Y, 2, 2), gestureRecognizer.View);
menuController.MenuVisible = true;
imageForReset = gestureRecognizer.View;
}
}