我正在使用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)];
}
但是这不起作用,视图缩放越多,偏移量就越大。实现这一目标的最佳方法是什么?
谢谢, Ĵ
答案 0 :(得分:1)
显然,您可以将最小和最大缩放比例设置为1。
但是,如果我在scrollViewDidZoom中设置contentSize,它对我有用:
- (void)scrollViewDidZoom:(UIScrollView *)scrollView {
[scrollView setContentSize:CGSizeMake(1024*scrollView.zoomScale, 1024*scrollView.zoomScale)];
}
顺便说一下,请确保关闭弹跳以准确检查:
scrollView.bounces = NO;