UIScrollView 中的 UIImageView 不是全屏和捏缩放

Posted

技术标签:

【中文标题】UIScrollView 中的 UIImageView 不是全屏和捏缩放【英文标题】:UIImageView in UIScrollView not full-screen and pinch zooming 【发布时间】:2011-07-28 10:47:06 【问题描述】:

网上的大部分示例代码都假设你的 UIScrollView 是全屏的。

我正在尝试创建一个内部只有一个 UIImageView 的 UIScrollView,并且只是希望能够像通常发生的那样进行缩放。我的 UIScrollView 只填充了屏幕的一部分,所以我不能像示例应用程序那样只使用自动调整大小来保持正确的大小。

我最接近的是将其添加到 UIScrollViewDelegate:

- (void)scrollViewDidZoom:(UIScrollView *)scrollView 
CGPoint cOffset = imageScrollView.contentOffset;
float cScale = imageScrollView.contentScaleFactor;

CGRect imageFrame = ptImage.frame;

float scale = scrollView.zoomScale;

imageFrame.size.width *= scale;
imageFrame.size.height *= scale;

ptImage.frame = imageFrame;

scrollView.zoomScale = 1.0;
scrollView.frame = CGRectMake(0.0, 0.0, scrollContainerView.frame.size.width, scrollContainerView.frame.size.height);
scrollView.bounds = CGRectMake(cOffset.x * cScale * scale , cOffset.y * cScale * scale, scrollView.bounds.size.width, scrollView.bounds.size.height);

scrollView.contentSize = imageFrame.size;

这里唯一的问题是边界偏移(scrollView.bounds = ...)不正确。

肯定比我在这里做的简单多了?

有什么帮助吗?

【问题讨论】:

【参考方案1】:

尝试在以下位置返回您的 UIImageView:

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView

并删除您放入 didZoom 方法中的代码,看看是否有效。

【讨论】:

Joris,你说得对,我在那个函数中返回的是 UIScrollView 而不是 UIImageView,因此我生命中的时间完全怪异和损失!谢谢!

以上是关于UIScrollView 中的 UIImageView 不是全屏和捏缩放的主要内容,如果未能解决你的问题,请参考以下文章

使用许多图像缩放 UIScrollView 的正确方法?

在 UIScrollView 内的 UIImageView 上启用 GestureRegnizer

在 UIScrollView 中放大多个 UIImageView

如果我隐藏 NavigationBar 和 ToolBar,UIScrollView 会向上移动

UIButton 没有响应嵌套在另一个 UIScrollView 中的 UIScrollView 中的触摸

水平 UIScrollView 中的多个垂直滚动 UIScrollView