Ios 缩放时调整UIScrollView内容的大小
我知道这个主题有很多主题,但我没有找到解决问题的好方法。 我有一个UIScrollView,其中包含一个图像和作为子视图添加的其他组件。 我只是想知道当我缩放时实时调整组件大小的好方法Ios 缩放时调整UIScrollView内容的大小,ios,uiscrollview,resize,zooming,image-resizing,Ios,Uiscrollview,Resize,Zooming,Image Resizing,我知道这个主题有很多主题,但我没有找到解决问题的好方法。 我有一个UIScrollView,其中包含一个图像和作为子视图添加的其他组件。 我只是想知道当我缩放时实时调整组件大小的好方法 - (void)scrollViewDidZoom:(UIScrollView *)scrollView { // Resizing image and other components } 编辑:我希望在缩放时,滚动视图中的组件保持相同的大小。我不希望它们在缩放过程中变大或变小 编辑:以下是我的UIV
- (void)scrollViewDidZoom:(UIScrollView *)scrollView {
// Resizing image and other components
}
编辑:我希望在缩放时,滚动视图中的组件保持相同的大小。我不希望它们在缩放过程中变大或变小
编辑:以下是我的UIViewController的层次结构
- 看法
- 滚动视图
- 主视图
- 图像视图
- 工程视图(包含UILabel、其他UIView等组件的UIView…)
- 主视图
- 滚动视图
非常感谢 我会保持UIScrollView的比例不变,并在子视图(调整其大小,而不是scrollView)的帮助下达到目标,在那里我会放置所有子视图和您处理的图像。 所以它会是这样的:
yourView.transform = CATransform3DMakeScale(newScale, newScale, 1.0);
其中yourView是scrollView的主(唯一)子视图。然后,我将使用新的比例重新计算yourView的大小,并将其设置为scrollView的contentSize参数,以便您可以实际滚动放大的内容,而不仅仅是看到它被截断
唯一的问题是,在这种情况下,您应该使用除scrollViewDidZoom以外的回调:我想
另外,更改UIView的变换参数您不必担心子视图的比例:CoreAnimation为您做一切。我将保持UIScrollView的比例不变,并在子视图(调整其大小,而不是滚动视图)的帮助下达到目标,我将在其中放置所有子视图和您处理的图像。 所以它会是这样的:
yourView.transform = CATransform3DMakeScale(newScale, newScale, 1.0);
其中yourView是scrollView的主(唯一)子视图。然后,我将使用新的比例重新计算yourView的大小,并将其设置为scrollView的contentSize参数,以便您可以实际滚动放大的内容,而不仅仅是看到它被截断
唯一的问题是,在这种情况下,您应该使用除scrollViewDidZoom以外的回调:我想
另外,更改UIView的变换参数时,您无需担心子视图的比例:CoreAnimation为您做一切。它是CGAffineTransformScale,而不是CATTransformM3DMakeScale。我做错了吗?此外,我编辑了我的问题。我希望在缩放时,滚动视图中的组件保持相同的大小。我不希望它们在缩放过程中变大或变小。随便你喜欢哪个,但在你的例子中,CGAffineTransformScale确实更好。与您的版本有关的内容:在我看来,您的任务实际上不需要放大/缩小您的scrollView,而是需要在增加其contentSize后适当地替换其中的子视图。因此,您可以在回调中设置scrollView.contentSize(此回调本身不提供缩放,因此如何找到要缩放的值是另一个问题)和子视图的位置(更改frame.origin)。是的,但是当我缩放滚动视图(以便将图像放大到)时,其他组件自动变大/变小。如何避免这种情况?我编辑问题是为了显示mu UIViewController的层次结构。它是CGAffineTransformScale,而不是CATTransferM3dMakeScale。我做错了吗?此外,我编辑了我的问题。我希望在缩放时,滚动视图中的组件保持相同的大小。我不希望它们在缩放过程中变大或变小。随便你喜欢哪个,但在你的例子中,CGAffineTransformScale确实更好。与您的版本有关的内容:在我看来,您的任务实际上不需要放大/缩小您的scrollView,而是需要在增加其contentSize后适当地替换其中的子视图。因此,您可以在回调中设置scrollView.contentSize(此回调本身不提供缩放,因此如何找到要缩放的值是另一个问题)和子视图的位置(更改frame.origin)。是的,但是当我缩放滚动视图(以便将图像放大到)时,其他组件自动变大/变小。如何避免这种情况?我编辑了我的问题,以显示mu UIViewController的层次结构。