UIScrollViewの左右のスクロールに制限を設定する最適な方法は何ですか?私はこれが簡単だと思ったが、私の試みはすべて失敗した。iOS。 UIScrollviewのスクロールを制限するにはどうすればよいですか?
私は、アプリケーションの使用中にいつでもスクロール範囲をプログラムで制限することができる解決策が必要です。これは、多くの場合、表示されるデータの変化に対応することになります。
おかげで、
ダグ
UIScrollViewの左右のスクロールに制限を設定する最適な方法は何ですか?私はこれが簡単だと思ったが、私の試みはすべて失敗した。iOS。 UIScrollviewのスクロールを制限するにはどうすればよいですか?
私は、アプリケーションの使用中にいつでもスクロール範囲をプログラムで制限することができる解決策が必要です。これは、多くの場合、表示されるデータの変化に対応することになります。
おかげで、
ダグ
。
擬似コード:私の場合は
Calculate criteria for constraining pan
if (pan-constraint-is-met) {
Calculate pan-limit
[self setContentOffset:limitedContentOffset];
}
あなたがする必要があるだろうすべては、次のコードでスクロールビューのコンテンツのサイズを変更しています。
[scrollView setContentSize:CGSizeMake(width, height)];
あなたは、スクロールビューのcontentSizeプロパティを使用してコンテンツのサイズを制御することができます。これでは不十分な場合(スクロール領域をコンテンツの途中の任意の領域に限定するなど)、スクロールビューのデリゲートメソッドでcontentOffsetを強制的に必要な制限にすることができます。
基本的には、コードは次のようになります。私は私のオーバーロードさlayoutSubviews方法でパン制約を置くことの私のアプローチと一緒に行きました
- (void) scrollViewDidScroll:(UIScrollView*)scroll{
CGPoint offset = scroll.contentOffset;
// Check if current offset is within limit and adjust if it is not
if (offset.x < minOffsetX) offset.x = minOffsetX;
if (offset.y < minOffsetY) offset.y = minOffsetY;
if (offset.x > maxOffsetX) offset.x = maxOffsetX;
if (offset.y > maxOffsetY) offset.y = maxOffsetY;
// Set offset to adjusted value
scroll.contentOffset = offset;
}
私はとにかくの内容を変更することはできません。私は視覚化アプリをやっていて、コンテンツのサイズは視覚化の基盤です。私が探しているのは、最小ZoomScaleと最大ZoomScaleの類似点です。これらの値を変更しても、コンテンツには影響しません。 – dugla