我想通过触摸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) 它的工作非常精确。但是我无法接触,因为我没有发生任何事件,所以我不能使用这种方法。
答案 0 :(得分:1)
您可以在工具栏中添加UIPanGestureRecognizer
。
它只识别平移手势(拖动)。在目标方法中,使用CGRectContainsPoint(CGRect, point)
方法检查触摸是否在您的栏栏按钮的框架中,并首先触摸if(UIGestureRecognizerStateBegan)
。
如果是,则在UIGestureRecognizerStateEnded or
UIGestureRecognizerStateCancelled
之后启用拖动
禁用拖动。