-4

私の問題はこれです。ユーザーはグリッド上の特定の画像を保持できます。ユーザーが画像を2秒間保持すると、その上に別のビューがポップアップ表示されます。ユーザーの指がまだ画面上にあるため、プログラムが機能する必要があります。新しく作成されたビューは指と一緒に移動します。現在は機能しているため、ビューを一緒に移動するには、ユーザーは指を離して画面に戻す必要があります。アイデアはありますか?

4

2 に答える 2

1

最初のプレスを検出するために使用する場合はUILongPressGestureRecognizer、ユーザーが指を離すまでジェスチャ アクション メソッドを呼び出し続けるため、それを使用して動きを追跡することもできます。

于 2012-07-12T17:36:18.190 に答える
1

おそらくそれを行うことができるさまざまな方法があります。頭に浮かぶのは、View Controller自体を介してタッチイベントを管理することです。-canBecomeFirstResponderこれには、もちろんメソッドを実装する必要がありますtouches[Began|Moved|Ended|Cancelled]:withEvent:

別の方法として、 を使用しUIImageViewて個々の画像を管理および表示している場合は、それをサブクラス化し、それを介してタッチ イベントを処理できます。この場合、UIViewドラッグを追跡するために実際に新しい を作成するのではなくNSAffineTransform、「ポップアウト」の外観を与えるために使用し、同じビュー オブジェクトで位置を追跡し続けることができます。タッチが終了したら、識別変換を適用して通常のサイズに戻します。変換はアニメート可能です。

編集

ビュー コントローラーの実装では、上記のタッチ メソッドを実装する以外に、コントローラーで実際にタッチ イベントを受け取るために次の操作を行います。

@implementation MyViewController

...

- (BOOL)canBecomeFirstResponder
{
    return YES;  // Default for UIResponder is NO
}

...

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    ...
    [self becomeFirstResponder];  // ensures view controller receives touch events
}

...

@end
于 2012-07-12T17:41:35.723 に答える