应使用哪些滚动视图和图像视图设置在 iOS 中显示可缩放图片?
Posted
技术标签:
【中文标题】应使用哪些滚动视图和图像视图设置在 iOS 中显示可缩放图片?【英文标题】:What scrollview and imageview settings should be used to display a zoomable picture in iOS? 【发布时间】:2013-01-22 03:53:33 【问题描述】:在滚动视图中尝试放大图像视图中的 png 时,我遇到了一些奇怪的行为。我认为我在实用程序窗格中设置了错误的约束或设置。如果我想先看到整个图片然后放大,它们应该是什么?
图像渲染,但是当我尝试捏放大和缩小时,只有图片的高度变大或变小,宽度停留在 iPhone 屏幕宽度。但是,如果我玩够了,我可以进一步放大,但一切都会扭曲和旋转。任何想法我做错了什么?
这是我现在在 View Controller 实现文件中的代码:
@interface ZooViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
@end
@implementation ZooViewController
@synthesize imageView;
@synthesize scrollView;
-(void)viewDidLoad
[super viewDidLoad];
[self.imageView setContentMode:UIViewContentModeScaleAspectFit];
self.scrollView.contentSize = self.imageView.image.size;
self.imageView.frame = CGRectMake(0, 0, self.imageView.image.size.width, self.imageView.image.size.height);
-(UIView *) viewForZoomingInScrollView:(UIScrollView *)scrollView
return self.imageView;
-(void)didReceiveMemoryWarning
[super didReceiveMemoryWarning];
-(void)viewDidUnload
[self setImageView:nil];
[self setScrollView:nil];
[super viewDidUnload];
@end
【问题讨论】:
是否有一些您认为负责的代码可以发布?也许是问题的图片/屏幕截图? cocoadevblog.s3.amazonaws.com/005/ImageZooming.zip @NANNAV,谢谢你的代码!我对故事板实用程序面板中的设置与代码本身的关系感到困惑。代码是否会覆盖设置,反之亦然?对不起初学者的问题.. 【参考方案1】:首先将图片内容模式设置为 UIViewContentModeScaleAspectFit
[self.imageView setContentMode:UIViewContentModeScaleAspectFit];
然后设置滚动视图内容大小
self.scrollView.contentSize = self.areaImageView.frame.size;
别忘了设置滚动视图代理
// For supporting zoom,
scrollView.minimumZoomScale = 0.5;
scrollView.maximumZoomScale = 2.0;
...
// Implement a single scroll view delegate method
- (UIView*)viewForZoomingInScrollView:(UIScrollView *)aScrollView
return imageView;
【讨论】:
我想也许我在故事板实用程序面板中选中或取消选中了我不应该有的东西?就像视图或滚动视图实用程序中的东西一样?现在在模拟器中,它只会上下移动图像,但只会偶尔放大(比如 15 次尝试中的一次)。 是否有特定的宽度和高度尺寸可以用于滚动和图像设置以使它们相互配合?无论如何,我添加了上面的代码。谢谢!!以上是关于应使用哪些滚动视图和图像视图设置在 iOS 中显示可缩放图片?的主要内容,如果未能解决你的问题,请参考以下文章