iOS实现图片的缩放和居中显示
2013-08-26 10:21
375 查看
直接上代码 // // 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
转载自:http://blog.sina.com.cn/s/blog_9c3c519b0100za22.html
相关文章推荐
- iOS实现图片的缩放和居中显示
- iOS实现图片的缩放和居中显示
- iphone下实现图片的缩放和居中显示
- 猫猫学IOS(九)UI之UIScrollView代理触摸实现_图片缩放
- iOS View自定义窍门——UIButton实现上显示图片,下显示文字
- iOS应用开发中使用UIScrollView控件来实现图片缩放
- JS实现控制图片显示大小的方法【图片等比例缩放功能】
- iOS开发之imageView居中显示图片
- iOS-UI篇—UIScrollView控件实现图片缩放功能
- iOS开发UI基础—17UIScrollView控件实现图片缩放功能
- 重写button实现文字图片居中显示
- iOS 图片裁剪与居中显示
- iOS UI-UIScrollView控件实现图片缩放功能
- 猫猫学IOS(九)UI之UIScrollView代理触摸实现_图片缩放
- 实现图片在浏览器页面中居中显示
- iOS - UIScrollView控件实现图片缩放功能(还需补充代码)
- 实现动态加载的图片页面中纵向居中显示
- ios 关于UIImageView的显示问题——居中显示或者截取图片的中间部分显示
- iOS开发UI篇—UIScrollView控件实现图片缩放功能
- 【iOS开发-54】案例学习:通过UIScrollView的缩放图片功能练习代理模式的具体实现