0

UIBarButtonItemをタッチして移動することで、スライド式のUIToolbarを作成したいと思います。いくつかのトピックを読んだところ、touchesMovedを実装する必要があることがわかりました。しかしここで?UIBarButtonItemにあるUIButtonを見つけた場所のみ。

これはviewControllerviewDidLoadです

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 に答える