touchesMoved不适用于UIBarButtonItem

时间:2013-03-11 15:19:10

标签: ios uibarbuttonitem uitoolbar

我想通过触摸UIBarButtonItem并移动来创建滑动UIToolbar。我读了一些主题,发现我必须实现touchesMoved。但是哪里?只有我发现它位于UIBarButtonItem的UIButton。

这是viewController viewDidLoad

self.toolbar = [[UIToolbar alloc] initWithFrame: CGRectMake(bounds.origin.x, bounds.size.height - 2.5*height, bounds.size.width, 2*height)];

SlideButton* infoButton = [SlideButton buttonWithType: UIButtonTypeDetailDisclosure];
UIBarButtonItem *slideButton = [[UIBarButtonItem alloc]initWithCustomView:infoButton];

self.toolbar.items = items;
[self.view addSubview:self.toolbar];

最奇怪的是,我试图将UIButton绑定到action(addTarget:action:forEvents) 它的工作非常精确。但是我无法接触,因为我没有发生任何事件,所以我不能使用这种方法。

1 个答案:

答案 0 :(得分:1)

您可以在工具栏中添加UIPanGestureRecognizer

它只识别平移手势(拖动)。在目标方法中,使用CGRectContainsPoint(CGRect, point)方法检查触摸是否在您的栏栏按钮的框架中,并首先触摸if(UIGestureRecognizerStateBegan)

如果是,则在UIGestureRecognizerStateEnded or UIGestureRecognizerStateCancelled之后启用拖动 禁用拖动。