0

tableViewセルを長押しすると、サブビューが最上位ビューに追加され、その新しいサブビューを画面全体にドラッグできることを願っています。

に を追加UILongPressGestureRecognizertableView、長押しハンドルに必要なサブビューを追加しました。しかし、私はそれを動かすことができません。(void) touchesMoved:(NSSet *) touches withEvent:(UIEvent *)サブビュー クラスに- イベントを追加しました。それはうまくいきましたが、長押しハンドラー内に新しいサブビューを追加するためのタップと、サブビュークラスで touchesMoved を呼び出すためのタップの 2 つのタップでそれを行う必要があります。

1 回のホールド アンド ドラッグでどのように実行できますか?

4

1 に答える 1

0

掘り下げる前に、あなたの質問をよく考えてみましたが、あなたが望むことを行うためのより良い方法は、単にコードを-touchesMoved:withEvent:UITableViewCell クラスに移動することです。そうすれば、セルはまだタッチを処理しており、サブビューを追加した後にタッチの処理方法をやり直す必要はありません。そう:

カスタム UITableViewCell サブクラスの実装ファイルで:

- (void)touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event {
    UITouch* touch = [touches anyObject];
    CGPoint location = [touch locationInView:self];
    [yourSubview setCenter:location];
}

これでうまくいくはずです。

于 2012-07-17T21:32:59.193 に答える