在过去的几天里,我开始在目标 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