IOS手指控制图片的缩放

来源:互联网 发布:mysql查看连接池 编辑:程序博客网 时间:2024/04/28 08:26
////  MoveScaleImageController.h//  MoveScaleImage////  Created by  on 12-4-24.//  Copyright (c) 2012年 __MyCompanyName__. All rights reserved.//#import <UIKit/UIKit.h>#import "MoveScaleImageView.h"@interface MoveScaleImageController : UIViewController<UIScrollViewDelegate>{    UIScrollView *myScrollView;    UIImageView *myImageView;}@property(retain,nonatomic)UIScrollView *myScrollView;@property(retain,nonatomic)UIImageView *myImageView;@end ////  MoveScaleImageController.m//  MoveScaleImage////  Created by  on 12-4-24.//  Copyright (c) 2012年 __MyCompanyName__. All rights reserved.//#import "MoveScaleImageController.h"@interface MoveScaleImageController ()@end@implementation MoveScaleImageController@synthesize myScrollView;@synthesize myImageView;-(void)dealloc{    [myScrollView release];    [myImageView release];    [super dealloc];}-(void)loadView{    [super loadView];    self.view.backgroundColor = [UIColor lightGrayColor];    //    UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];    UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake(110, 200, 100, 50)];//    [btn setFrame:CGRectMake(110, 200, 100, 40)];    [btn setBackgroundColor:[UIColor whiteColor]];    [btn setTitle:@"点击查看图片" forState:UIControlStateNormal];    [btn.titleLabel setFont:[UIFont systemFontOfSize:13]];    [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];    [btn addTarget:self action:@selector(clickEvent:) forControlEvents:UIControlEventTouchUpInside];    [self.view addSubview:btn];    [btn release];        //下面是我要剪切区域的覆盖层//    if(self.centerOverLayView==nil)//    {//        UIView *centerView=[[UIView alloc] initWithFrame:CGRectMake(20, 100, 280, 210)];//        self.centerOverLayView=centerView;//        [centerView release];//    }//    self.centerOverLayView.backgroundColor=[UIColor clearColor];//    self.centerOverLayView.layer.borderColor=[UIColor orangeColor].CGColor;//    self.centerOverLayView.layer.borderWidth=2.0;//    [self.view addSubview:self.centerOverLayView];    }-(void)clickEvent:(id)sender{    NSLog(@"***********clickeventad");    myScrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];    if(self.myScrollView==nil)    {        UIScrollView *scrollView=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];        self.myScrollView=scrollView;        [scrollView release];    }    self.myScrollView.backgroundColor=[UIColor blueColor];    self.myScrollView.delegate=self;    self.myScrollView.multipleTouchEnabled=YES;    self.myScrollView.minimumZoomScale=1.0;    self.myScrollView.maximumZoomScale=10.0;    [self.view addSubview:self.myScrollView];        UIImage *_image = [UIImage imageNamed:@"image.jpg"];    CGFloat imageView_X = (_image.size.width > self.view.frame.size.width) ? self.view.frame.size.width : _image.size.width;    CGFloat imageView_Y;    CGFloat origin;    if(_image.size.width > self.view.frame.size.width){        origin = self.view.frame.size.width/_image.size.width;        imageView_Y = _image.size.height*origin;    }    myImageView = [[UIImageView alloc]initWithFrame:CGRectMake((self.view.frame.size.width-imageView_X)/2, (self.view.frame.size.height-imageView_Y)/2, imageView_X, imageView_Y)];       if(self.myImageView==nil)    {        UIImageView *imageView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];        self.myImageView=imageView;        [imageView release];    }   //    [myImageView setImage:_image];        UIImage *originImage=[[UIImage alloc]initWithCGImage:_image.CGImage];    [myImageView setImage:originImage];//    [myImageView setFrame:CGRectMake(0, 0, _image.size.width, _image.size.height)];        [self.myScrollView addSubview:self.myImageView];        UIButton *closeBtn = [[UIButton alloc]initWithFrame:CGRectMake(10, 10, 50, 50)];    [closeBtn setBackgroundColor:[UIColor redColor]];    [closeBtn setAlpha:0.5];    [closeBtn addTarget:self action:@selector(closeEvent:) forControlEvents:UIControlEventTouchUpInside];    [self.view addSubview:closeBtn];    [closeBtn release];    //    UIView *backView = [[UIView alloc] initWithFrame:CGRectInset(self.view.frame, 5, 5)];//    backView.alpha = 0.5;//    backView.backgroundColor = [UIColor blackColor];////    [self.view addSubview:backView];//    //    UIImage* image=[UIImage imageNamed:@"image.jpg"];//    MoveScaleImageView*fileContent = [[MoveScaleImageView alloc]initWithFrame:CGRectMake(0, 44, 320, 436)];//    [fileContent setImage:image];//    ////    [backView addSubview:fileContent];//    [self.view addSubview:fileContent];//    //    [backView release];//    [fileContent release];}-(void)closeEvent:(id)sender{    [self.myImageView setHidden:YES];    [self.myScrollView setHidden:YES];}#pragma mark UIScrollView delegate methods//实现图片的缩放-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{    NSLog(@"**************viewForZoomingInScrollView");    return self.myImageView;}//实现图片在素芳过程中居中- (void)scrollViewDidZoom:(UIScrollView *)scrollView{    CGFloat offsetX = (scrollView.bounds.size.width > scrollView.contentSize.width)?(scrollView.bounds.size.width - scrollView.contentSize.width)/2 : 0.0;    CGFloat offsetY = (scrollView.bounds.size.height > scrollView.contentSize.height)?(scrollView.bounds.size.height - scrollView.contentSize.height)/2 : 0.0;    self.myImageView.center = CGPointMake(scrollView.contentSize.width/2 + offsetX,scrollView.contentSize.height/2 + offsetY);}- (void)viewDidLoad{    [super viewDidLoad];// Do any additional setup after loading the view.}- (void)viewDidUnload{    [super viewDidUnload];    // Release any retained subviews of the main view.}- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{    return (interfaceOrientation == UIInterfaceOrientationPortrait);}@end