0

我正在使用 UIScrollView 来显示一个大文档,我想限制用户可以以某种方式查看的区域。我几乎已经使用以下代码达到了预期的结果:

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

使用负数将子视图移动到滚动视图区域之外offsetXoffsetY这在缩放级别 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 回答