缩放时调整UIScrollView的内容大小

时间:2012-10-17 09:28:39

标签: ios uiscrollview resize zoom image-resizing

我知道这个主题有很多主题,但我找不到解决问题的好方法。 我有一个UIScrollView,其中包含一个图像和其他组件作为子视图添加。 我只是想知道在缩放时实时调整组件大小的好方法。

- (void)scrollViewDidZoom:(UIScrollView *)scrollView {
    // Resizing image and other components
}

编辑:我希望滚动视图中的组件在缩放时保持相同的大小。我不希望它们在缩放过程中变得更大或更小。

编辑:这是我的UIViewController的层次结构

  • 查看
    • 滚动型
      • 主要观点
        • 图片视图
        • 绘图视图(UIView包含UILabel,其他UIViews等组件......)

非常感谢!

1 个答案:

答案 0 :(得分:1)

我会保留UIScrollView的比例并在子视图的帮助下达到目标(调整它的大小,而不是scrollView的),我将放置所有子视图和你使用的图像。 所以它会是这样的:

yourView.transform = CATransform3DMakeScale(newScale, newScale, 1.0);

其中 yourView 是scrollView的主要(唯一)子视图。然后我会用新的比例重新计算 yourView 的大小,并将其设置为scrollView的 contentSize 参数,以便您可以实际滚动放大的内容,而不仅仅是看到它被截断。< / p>

唯一的一点就是在这种情况下你应该使用 scrollViewDidZoom以外的回调:我想。

P.S。更改UIView的转换参数,您无需担心子视图的比例:CoreAnimation会为您完成所有操作。