我正在尝试让我的代码以编程方式放大较大图片的一小部分。稍后我将添加点击代码,但是现在我只想看看它是否有效。
这段代码中的zoomToRect绝对不执行任何操作,我根本不明白为什么。当我构建它时,图像只是位于0,0原点。
我试过使用:
setContentOffset和scrollRectToVisible都可以正常工作-图像移动到指定的坐标。但是这些都不是我想要的,因为我需要移动和缩放图像,而不仅仅是移动它。
但是zoomToRect完全拒绝执行任何操作。我现在已经阅读了大约50页的示例和教程,但该死的东西行不通。我不知道为什么要拔头发。显然,我缺少一些真正的基础或重要的观点。
UIImage *myFirstImage = [UIImage imageNamed:@"manga_page.jpg"];
UIImageView *myFirstImageView = [[UIImageView alloc] initWithImage:myFirstImage];
[myFirstImageView setFrame:CGRectMake(0, 0, myFirstImage.size.width, myFirstImage.size.height)];
UIScrollView *myFirstScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
[myFirstScrollView setContentSize:CGSizeMake(myFirstImage.size.width, myFirstImage.size.height)];
[myFirstScrollView addSubview:myFirstImageView];
[self.view addSubview:myFirstScrollView];
[myFirstScrollView zoomToRect:CGRectMake(300, 300, 300, 300) animated:YES];
最佳答案
问题在于我尚未定义缩放委托-请在此处查看viewForZoomingInScrollView(页面底部):
https://developer.apple.com/library/ios/documentation/uikit/reference/uiscrollviewdelegate_protocol/Reference/UIScrollViewDelegate.html#//apple_ref/occ/intfm/UIScrollViewDelegate/viewForZoomingInScrollView
切换到Xamarin框架时,Objective C中没有代码片段。但是,C#解决方案如下:
scrollView.ViewForZoomingInScrollView = delegate (UIScrollView sv) { return imageView; };
其中imageView是包含要滚动的图像的UIImageView。