1

画面上で多くの UIView をスクロールするために iCarousel ライブラリを使用しています。各ビューは画面全体に表示されます。

短いタッチで 1 つのビューだけをスクロールするには、iCarousel を構成する必要があります。

今私が持っています

carousel.scrollSpeed = 0.1;

しかし、ある画面から別の画面にスクロールするには、画面の端から端まで指をスライドさせる必要があります。パラメータを高い値に設定scrollSpeedすると、多くの UIView がスクロールされましたが、1 回のタッチで 1 つの UIView だけをスクロールするように構成する必要があります。

誰でも私を助けることができますか?

4

4 に答える 4

6

あなたの最善の策は、カルーセル自体のスクロールを無効にし、 UISwipeGestureRecognizer をアタッチして、ユーザーがどちらの方向にスワイプしたかを検出し、前方にスワイプする場合は [carousel scrollByNumberOfItems:1 animation:YES] を呼び出し、[carousel scrollByNumberOfItems:-1 animation :YES] 後ろにスワイプした場合。

編集:

実際、ビューが画面いっぱいに表示される場合は、iCarousel の代わりに私の SwipeView ライブラリを使用する方が良いと思います。SwipeView には iCarousel と同じインターフェイスがありますが、UIScrollView に基づいているため、ページングを有効にし、numberOfItemsPerPage を 1 に設定して、説明したとおりに動作させることができます。

https://github.com/nicklockwood/SwipeView

アップデート:

上記の情報は古くなっています。iCarousel は、設定による単一ページのスワイプをサポートするようになりましたpagingEnabled=YES。そうは言っても、これがあなたがやろうとしていることであれば、 SwipeView はまだより適切かもしれません.

于 2012-10-02T16:11:10.990 に答える
1

フリック時にカルーセルが減速する速度。値が大きいほど減速が遅くなります。デフォルト値は 0.95 です。値は 0.0 (カルーセルがリリースされるとすぐに停止する) から 1.0 (カルーセルが最後に達しない限り、速度を落とさずに無期限に継続する) の範囲である必要があります。

0 から 0.5 の間の値を試してください。スクロールビューとまったく同じようには動作しませんが、それが最も近いものです。参照( https://github.com/nicklockwood/iCarousel/issues/94 )

于 2013-05-17T09:01:44.950 に答える
1

あなたはこのように試すことができます---

self.iCarosoul.decelerationRate=0.65;
self.iCarosoul.scrollSpeed=3;
self.iCarosoul.stopAtItemBoundary=YES
self.iCarosoul.scrollToItemBoundary=YES;
于 2015-06-02T11:09:50.997 に答える
1

実際、このコードでうまくいきます。

carousel.decelerationRate = 0.3;
于 2013-04-25T16:07:39.323 に答える