0

我想通过触摸 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 绑定到操作 (addTarget:action:forEvents) 它的工作原理,非常准确。但是我不能采取触摸的位置,因为我没有发生过事件,所以我不能使用这种方法。

4

1 回答 1

1

您可以添加一个UIPanGestureRecognizer到您的工具栏。

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

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

于 2013-03-11T15:35:32.230 回答