2014-03-06 55 views
0

我想在我的UIImageView上实现滚动和缩放,但它只是垂直滚动。UIScrollView只能垂直滚动

它放大,它垂直滚动,所有东西都连接在InterfaceBuilder中。在InterfaceBuilder中没有约束。

有人能帮我理解为什么吗?

感谢,

// 
// O_GTab2ViewController3.m 
// Safety Moment 
// 
// Created by Fabio Lanza on 3/2/14. 
// Copyright (c) 2014 Fabio Lanza. All rights reserved. 
// 

#import "O_GTab2ViewController3.h" 

@interface O_GTab2ViewController3() <UIScrollViewDelegate> 
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView; 
@property (weak, nonatomic) IBOutlet UIImageView *imageView; 
@property (weak, nonatomic) IBOutlet UIImage *image; 

@end 

@implementation O_GTab2ViewController3 

@synthesize imageName; 



- (void)setScrollView:(UIScrollView *)scrollView { 

    scrollView.minimumZoomScale = 0.2; 
    scrollView.maximumZoomScale = 2.0; 

    scrollView.contentSize = self.imageView.image.size; 

} 

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView { 
    return self.imageView; 
} 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 

    self.image = [UIImage imageNamed:imageName]; 
    self.imageView.image = self.image; 
    self.imageView.contentMode = UIViewContentModeTopLeft; 
    [self.imageView sizeToFit]; 

    self.scrollView.frame = CGRectMake(0, 64, 320, 455); 
    self.scrollView.contentSize = self.imageView.image.size; 
    self.scrollView.delegate = self; 

// [self.view addSubview:self.scrollView]; 

    [self.scrollView addSubview:self.imageView]; 
} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

@end 

回答

0

无论是滚动视图将滚动取决于它的contentSize和frame.That是说,如果你的contentSize比框架大,它会滚动。

我检查你的代码:

scrollView.contentSize = self.imageView.image.size;

self.scrollView.frame = CGRectMake(0,64,320,455);

也许,imageView.size.height> 455,所以它会垂直滚动。

但是,imageView.size.width < 320,所以它不会水平抛出。

要水平滚动,您应该设置contentSize,宽度> 320.