2011-12-28 29 views
0

我正在使用-(NSUInteger)numberOfTouches方法UIGestureRecognizer类来计算UITableViewController中的触摸次数。 (my earlier questionUIGestureRecognizer覆盖UITableViewController中的“长按”

尽管我能够正确计数它们,但它是以这样的方式重写触摸事件,即tableView的didSelectRowAtIndexPath方法仅在非常短的水龙头上调用。 长按,单元格会突出显示,但不会触发didSelectRowAtIndexPath

请指导应该做些什么。 谢谢。

+0

没有人.......?! – BufferStack 2011-12-28 15:56:12

回答

0

有几件事情可以尝试。首先,你的直接问题是手势识别器可能在等待看你是否要添加点击/触摸来满足它的射击需求。您还可以添加一个长触摸识别器,它可以调用您的didSelectRowAtIndexPath,但由于您是一名付费开发人员,因此我首先会首先观察来自2010年的手势识别器的WWDC会议,这将为您提供有关如何正确的好主意实现多个手势识别器,以便在需要时触发它们。

0

从viewDidLoad()调用它也实现了这个代码monochouch它给了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; 

     } 

    }