0

尝试在滚动视图内放大图像视图中的 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
4

1 回答 1

2

首先将图像内容模式设置为 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;
  } 
于 2013-01-22T04:17:14.210 回答