0

UIScrollViewを使用して大きなドキュメントを表示していますが、ユーザーが表示できる領域を何らかの方法で制限したいと思います。私は次のコードでほぼ望ましい結果を達成しました:

[childView setFrame:CGRectMake(offsetX, offsetY, contentWidth, contentHeight)];
[scrollView setContentSize:CGSizeMake(contentWidth, contentHeight)];

子ビューをスクロールビュー領域の外に移動するには、負の数を使用しoffsetXます。offsetYこれはズームレベル1.0では完全に機能しますが、他のズームレベルでは機能しません。私はこのように実装- (void)setZoomScale:(float)zoomScaleしました:

- (void)setZoomScale:(float)zoomScale {
    [super setZoomScale:zoomScale];
    [childView setFrame:CGRectMake(offsetX * zoomScale, offsetY * zoomScale, contentWidth, contentHeight)];
}

ただし、これは機能しません。ビューをズームするほど、オフセットは徐々に大きくなります。これを達成するための最良の方法は何ですか?

ありがとう、J

4

1 に答える 1

1

明らかに、最小および最大ズームスケールを1に固定することができます。

ただし、scrollViewDidZoomでcontentSizeを設定すると、機能します。

- (void)scrollViewDidZoom:(UIScrollView *)scrollView {
    [scrollView setContentSize:CGSizeMake(1024*scrollView.zoomScale, 1024*scrollView.zoomScale)];
}

ところで、正確にチェックするためにバウンスをオフにしてください:

scrollView.bounces = NO;
于 2012-05-22T11:23:50.473 に答える