32

「Cut the Rope」ゲームでレベルパックを選択するために使用されるものに似た、一種の「ゲームモード」メニューを作成しようとしています。

ロープメニューを切る

私が特に望んでいるのは、「現在のアイテム」(この場合は「2. Fabric Box」アイテム)に加えて、前後のアイテムを少し表示するという同じ効果を実現することです(ユーザーがそれを認識していることを確認するため)スクロールによって利用可能なモードが他にもあります)、ページネーションが有効になっています (これらのアイテムのスクロール ビューを自動的に「中心」にするため)。

これは、ページネーションが有効になっている UIScrollView の自然な仕事のように思えますが、ドキュメントから、ビュー境界の倍数でページネーションが発生するようです。

したがって、ビュー境界の倍数でページネーションが発生する場合、UIScrollView でこの効果を達成する方法はありますか?

画面の全幅が表示されるという事実は、この場合 UIScrollView フレームの幅が 320px であることを示唆していますが、個々の項目は、前後の項目を少しだけ表示するためにそれよりも小さくする必要があります。したがって、ページネーションを台無しにします...

4

1 に答える 1

46

参考までに、ここからページ コントロールの実装例を確認できます。 https://developer.apple.com/library/content/samplecode/PageControl/Introduction/Intro.html

必要な実装では、驚いたことに、スクロールビューの幅は実際には 320 (または 480) よりも小さいです。設定するマジック プロパティは次のとおりです。

scrollView.clipsToBounds = NO

この実装の唯一の問題は、タッチが scrollView の境界外にある場合、スクロール ビューがタッチ イベントを取得しないことです。これは、親の hitTest イベントを scrollView に渡すことで修正できます。

より良い説明にリンクするだけです: Mobile Safari tabs のような UIScrollView 水平ページング

私が推奨するものとは少し異なりますが、同じことをします。

編集:

上記のことを行う LXPagingViews という小さなプロジェクトがあります

于 2011-04-11T08:54:51.170 に答える