Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 缩放时调整UIScrollView内容的大小_Ios_Uiscrollview_Resize_Zooming_Image Resizing - Fatal编程技术网

Ios 缩放时调整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

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

- (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的层次结构。