UIScrollViewのページング動作をpagingEnabled = YESに設定するにはどうすればよいですか?
-
05-07-2019 - |
質問
ドキュメントによると:
プロパティの値がYESの場合、 スクロールビューは、倍数で停止します ユーザーがスクロールするとビューの境界が決まります。 デフォルト値はNOです。
まあ、ユーザーがスクロールするとビューの境界の倍数で停止するのは本当に素晴らしいです;)しかし、何倍ですか?そのビーイングはどのように計算されますか?私は本当に奇妙な振る舞いをします。 15個の小さな50x50の画像を垂直方向に並べています。 50ユニットがスクロールされるたびに、またはすべての画像で停止するように設定するにはどうすればよいですか?上部で1回、中央で1回、最後で1回停止します。私が期待していた動作ではありません。
解決
境界の倍数ごとに停止します。つまりscrollviewの境界が0,0,100,100の場合、コンテンツ領域の終わりまで100の倍数ごとに停止します。原点が0(0 * 100)であると仮定すると、1回のスワイプジェスチャーで0,100(またはdirectionLockが有効になっていない場合は100,0または100,100)になります。
これを完全にデバッグするには、スクロールビューの境界、コンテンツrect、およびコンテンツフレーム内のすべてのサブビューイメージのフレームを表示する必要があります。
スクロールビューは、サブビューのフレームではなく、境界の倍数にスクロールしていると思われます-それらが一致しない場合は、自分でページングを実装する必要があります。
所属していません StackOverflow