目标C中UIScrollView中的zoomToRect方法不起作用

Posted

技术标签:

【中文标题】目标C中UIScrollView中的zoomToRect方法不起作用【英文标题】:zoomToRect method in UIScrollView in objective C not working 【发布时间】:2012-08-03 14:36:39 【问题描述】:

在过去的几天里,我开始研究目标 C,我真的很难理解 uiscrollview。我想让视图在大于屏幕尺寸的图像周围移动,并且每次点击屏幕时都可能放大/缩小。为了尝试一些早期的测试,我在下面写了一个简单的代码序列。注释为 (2) 的代码有效,我在构建和运行后看到了简短的动画,但 (1) 没有。图像只是坐在那里不动。我可以看到使用 zoomToRect 让滚动工作根本这是一个问题,因为我想缩放到图像的较小部分,而不是仅仅以相同的缩放级别移动到那里。

我确定我对它的工作原理有一些基本的误解。有人能告诉我哪里出了问题(我还没有将任何这些编码到类/方法中) - 只是想了解 zoomToRect 的实际工作原理,因为我认为这是我需要的。

UIImage *myFirstImage = [UIImage imageNamed:@"page.jpg"];

UIScrollView * myFirstScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 360, 480)];

[myFirstScrollView setContentSize:CGSizeMake(myFirstImage.size.width, myFirstImage.size.height)];

UIImageView *myFirstImageView = [[UIImageView alloc] initWithImage:myFirstImage];

[myFirstImageView setFrame:CGRectMake(0, 0, myFirstImage.size.width, myFirstImage.size.height)];

[myFirstScrollView addSubview:myFirstImageView];

[self.view addSubview:myFirstScrollView];

// 1

[myFirstScrollView zoomToRect:CGRectMake(300, 300, 360, 480)
    animated:YES];  // THIS DOESN'T WORK

// 2

[myFirstScrollView scrollRectToVisible:CGRectMake(300, 300, 360, 480) 
    animated:YES]; // THIS DOES WORK

【问题讨论】:

【参考方案1】:

这里有一个可能对你有帮助的答案

content size of UIScrollView

您的滚动视图 contentSize 与图像大小相同。所以在零缩放比例下,它不会滚动。

请查看 SO 链接,这会对您有所帮助。

【讨论】:

以上是关于目标C中UIScrollView中的zoomToRect方法不起作用的主要内容,如果未能解决你的问题,请参考以下文章

目标 C:在 UIScrollView 中触摸时绘制(写入)

目标 C:使用 UIScrollview 改变方向

无法单击 UIScrollview 目标上的按钮 - C

目标 C:在 UIScrollView 上触摸绘图

目标 C:检测 UIScrollView 上的触摸事件

目标 - C UIScrollView 不能水平工作