循環スクロール機構を実装するにはどうすればよいですか?
-
06-07-2019 - |
質問
ユーザーが選択する画像がいくつかあります。今では、退屈なグリッドのあるフラットなスクロール領域を提供したくありません。代わりに、それらの画像を含むホイールを表示したいと思います。上部には、選択を示すマーカーがあります。ピッカーに似たもの。
問題は回転の問題ではありません。そのためにいくつかの幾何学的関数を使用します。しかし、実際にそのホイールでスクロールジェスチャを取得する方法はわかりません。どこから始めなければなりませんか
ところで:サーキュラーでは、ピッカーのようなものを意味しません。私は、中心軸を持ち、回転できる実際のホイールを意味します。自転車の車輪のような非常に古い電話のように。または、ピッカーを90°に向け、軸を自分に向けます(Z座標)。
解決
ジェスチャーのキャプチャについて話している場合は、ドキュメントに記載されている例。
私は誓ったかもしれませんが、最初の CS193Pの講義。これを行う必要はありません。スワイプイベントをトラップすることはできますが、見つかりません。
実際に彼らが何をしているかを知っている誰かが私を修正してください、私はこの投稿を削除しますが、今のところこれが機能することを知っています:
#define HORIZ_SWIPE_DRAG_MIN 12
#define VERT_SWIPE_DRAG_MAX 4
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
startTouchPosition = [touch locationInView:self];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint currentTouchPosition = [touch locationInView:self];
// If the swipe tracks correctly.
if (fabsf(startTouchPosition.x - currentTouchPosition.x) >= HORIZ_SWIPE_DRAG_MIN &&
fabsf(startTouchPosition.y - currentTouchPosition.y) <= VERT_SWIPE_DRAG_MAX)
{
// It appears to be a swipe.
if (startTouchPosition.x < currentTouchPosition.x)
[self myProcessRightSwipe:touches withEvent:event];
else
[self myProcessLeftSwipe:touches withEvent:event];
}
else
{
// Process a non-swipe event.
}
}
他のヒント
ピッカービューにどれだけ似ていると思いますか?画像ビューなどの独自のカスタムサブビューでピッカービューをロードできます。これにより、画像で実際のピッカービューが表示されます。これは、実際に狙っているものである場合とそうでない場合があります。
所属していません StackOverflow