UIScrollView 图片缩放、拖拽

UIScrollView初始化:

//滚动视图
    _myScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height - 44)];
    _myScrollView.pagingEnabled = NO; //是否翻页
    _myScrollView.showsVerticalScrollIndicator = NO;//不显示垂直方向的滚动条
    _myScrollView.bounces = YES;//遇到边框是否反弹
    [self.view addSubview:_myScrollView];

添加内容,调整UIScrollView内容宽高:

int len = 10;
    int i=0;
    UIImage *image = [UIImage imageNamed:@"bg"];
    for (; i<len; i++) {
        UIImageView *iv = [[UIImageView alloc] initWithFrame:CGRectMake(0,i*210,320,200);
        iv.image = image;
        [_myScrollView addSubview:iv];
    }
    CGSize newSize = CGSizeMake(320, i*210);
    [_myScrollView setContentSize:newSize];

UIScrollView 实现图片缩放,拖拽:

#import <UIKit/UIKit.h>
@interface ImageViewController : UIViewController<UIScrollViewDelegate>{
    UIImage *image;
    UIView *myView;
    UIScrollView *myScrollView;
    CGFloat imageWidth,imageHeight;
    CGFloat originalX,originalY,originalW,originalH;
    CGFloat distStart,distEnd,scale;
}
@property(nonatomic,strong) UIImage *image;
@property(nonatomic,strong) UIView *myView;
@property(nonatomic,strong) UIScrollView *myScrollView;@end
@implementation ImageViewController
@synthesize image = _image,myView = _myView;
@synthesize myScrollView = _myScrollView;
- (void)viewDidLoad{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.view.backgroundColor = [UIColor whiteColor];
    
    //myscrollview
    _myScrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320, 416)];
    [_myScrollView setDelegate:self];
    [_myScrollView setShowsHorizontalScrollIndicator:NO];
    [_myScrollView setShowsVerticalScrollIndicator:NO];
    [_myScrollView setMaximumZoomScale:2.0];
    [self.view addSubview:_myScrollView];
    imageWidth = _image.size.width;
    imageHeight = _image.size.height;
    _myView = [MyImage makeViewWithFrame:CGRectMake(0, 0, 320, 416) Image:_image];//此处传入_image获取一个全屏显示的view
    [_myScrollView setContentSize:CGSizeMake(320, 416)];
    [_myScrollView setMinimumZoomScale:1];
    [_myScrollView setZoomScale:[_myScrollView minimumZoomScale]];
    [_myScrollView addSubview:_myView];
    _myView.userInteractionEnabled = YES;
    //单击_myView
    UITapGestureRecognizer *singleRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleRecognizer:)];
    [_myView addGestureRecognizer:singleRecognizer];
}

-(void)singleRecognizer:(id)sender{
    NSLog("点击了");
}

#pragma UIScrollViewDelegate Methods
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
    return _myView;
}
posted @ 2012-11-19 13:21  TQ.CH  阅读(796)  评论(0编辑  收藏  举报