objective-c - Objective-C 中的 UIScrollView 中的 zoomToRect 方法不起作用

标签 objective-c ios xcode uiscrollview

最近几天我开始使用 Objective C,我真的很难理解 uiscrollview。我想让 View 围绕大于屏幕尺寸的图像移动,并且每次点击屏幕时都可能放大/缩小。为了尝试一些早期测试,我在下面编写了一个简单的代码序列。注释为 (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

最佳答案

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

content size of UIScrollView

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

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

关于objective-c - Objective-C 中的 UIScrollView 中的 zoomToRect 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11797832/

相关文章:

iOS - 执行 block 后从 heightForRowAtIndexPath 返回值

ios - 从 UIImagepickercontroller 选择后如何保存图像

objective-c - 由于保留或其他原因导致的泄漏? ( Objective-C )

iphone - iPad 应用强制旋转

ios - 混合 objective-c 项目中的 Swift "namespaces"不工作

objective-c - Cocoa/如何在应用程序委托(delegate)中获取对当前窗口的 contentViewController 的引用?

android - Xamarin Android 和 iOS 错误记录

ios - 为什么 CollectionView 上没有显示任何内容?

Xcode 7 : crash on breakpoint stop

iphone - 在 Objective C 中构建加密 key 存储库?