iOS实现图片的缩放和居中显示-创新互联
直接上代码
为大名等地区用户提供了全套网页设计制作服务,及大名网站建设行业解决方案。主营业务为成都网站设计、做网站、成都外贸网站建设公司、大名网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!//
// MoveScaleImageController.h
// MoveScaleImage
//
// Created by on 12-4-24.
// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//
#import
#import "MoveScaleImageView.h"
@interface MoveScaleImageController : UIViewController
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 *_p_w_picpath = [UIImage p_w_picpathNamed:@"p_w_picpath.jpg"];
CGFloat p_w_picpathView_X = (_p_w_picpath.size.width > self.view.frame.size.width) ? self.view.frame.size.width : _p_w_picpath.size.width;
CGFloat p_w_picpathView_Y;
CGFloat origin;
if(_p_w_picpath.size.width > self.view.frame.size.width){
origin = self.view.frame.size.width/_p_w_picpath.size.width;
p_w_picpathView_Y = _p_w_picpath.size.height*origin;
}
myImageView = [[UIImageView alloc]initWithFrame:CGRectMake((self.view.frame.size.width-p_w_picpathView_X)/2, (self.view.frame.size.height-p_w_picpathView_Y)/2, p_w_picpathView_X, p_w_picpathView_Y)];
if(self.myImageView==nil)
{
UIImageView *p_w_picpathView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
self.myImageView=p_w_picpathView;
[p_w_picpathView release];
}
// [myImageView setImage:_p_w_picpath];
UIImage *originImage=[[UIImage alloc]initWithCGImage:_p_w_picpath.CGImage];
[myImageView setImage:originImage];
// [myImageView setFrame:CGRectMake(0, 0, _p_w_picpath.size.width, _p_w_picpath.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* p_w_picpath=[UIImage p_w_picpathNamed:@"p_w_picpath.jpg"];
// MoveScaleImageView*fileContent = [[MoveScaleImageView alloc]initWithFrame:CGRectMake(0, 44, 320, 436)];
// [fileContent setImage:p_w_picpath];
//
//// [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
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
本文题目:iOS实现图片的缩放和居中显示-创新互联
本文来源:http://myzitong.com/article/ppoid.html