質問

ユーザーに画面全体に「フリック」できるようにしたいというuiviewがいくつかあります。彼らは巻き物のビューではありません。ラスター画像(PNG)が含まれています。誰かが私を始めるのを助けるためにいくつかのサンプルコードなどを指してもらえますか? 「フリック」(「ナッジ」またはドラッグアンドドロップ)を検出し、「フリック」の方向にビューをオフにするのに役立つ「moveme」よりも少しヘビー級よりも少しヘビー級?

OpenGLはおそらくやり過ぎです。可能であれば、コアグラフィック/アニメーションの領域にとどまりたいと思います。

役に立ちましたか?

解決

タッチを検出するために、ビューコントローラーでは、ToucheSbeganとToucheded Methodを使用してTouchesbeganのタッチを保存できます。タッチが左または右にある量以上移動した場合、それはフリックであり、左または右。

他のヒント

これを実装するEasyeistの方法は、ページングを有効にしてUiscrollviewコンテナにあなたの意見を入れ、すべての「フリック」アクションを心配させることだと思います。私にとってはうまくいきます。

いくつかの追加の努力があっても、画像が怠zyなロードを持っていることができます。

Nazgul42の回答を取得し、2つの言及されたイベント間の時間もチェックすることで、これを簡単に達成できると思います。その後、短い時間と長距離の組み合わせをフリックと解釈できます。また、両方のタッチイベントポイントの両方を計算することにより、フリックの方向を決定できます。

あなたが持っていると仮定します UIView 呼び出されました aView と2 UIImageViews, page1page2. 。あなたが持っていると仮定します page1 すでにサブビューとして aView, 、このコードは反転します page1page2:

[UIView beginAnimations:@"someId" context:nil];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:aView cahe:YES];
[page1 removeFromSuperview];
[aView addSubview:page2];
[UIView commitAnimations];

ここでスレッドを見つけましたが、この方法は私を心配しています -

http://discussions.apple.com/message.jspa?messageid=7862186

スピードやタイムスタンプを考慮しません。最後のイベントの更新以来の距離。 Appleがイベントの更新のFreqcency/Granularityを変更した場合、このコードは壊れる可能性があります。

使用してみてください UIPanGentureRecognizer サンプルコード:

UIPanGestureRecognizer *imageGesture = [[UIPanGestureRecognizer alloc]
                                         initWithTarget:self
                                         action:@selector(imageDragged:)];
[imageView1 addGestureRecognizer:imageGesture];

それから

- (void)imageDragged:(UIPanGestureRecognizer *)gesture{
UIImageView *imageView = (UIImageView *)gesture.view;
CGPoint translation = [gesture translationInView:imageView];

imageView.center = CGPointMake(imageView.center.x + translation.x,
                               imageView.center.y + translation.y);
imageView2.center = imageView.center;
imageView3.center = imageView.center;

[gesture setTranslation:CGPointZero inView:imageView];}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top