ios 根据手势放大或缩小图片
2014-06-20 16:06
519 查看
ios 根据手势放大或缩小图片
当用户需要根据自定义大小图片时,需要提供UIPinchGestureRecognizer来识别用户的手势。具体的步骤:1、新建xcode工程,选择View-based Application,工程名PhotoPanDemo
2、添加一张图片到Resources目录下,这里的图片命名为feiche.jpg
3、打开PhotoPanDemoViewController.h文件,创建UIImageView和UIView对象并添加手势的委托类,
代码:#import <UIKit/UIKit.h>
@interface PhotoPanDemoViewController : UIViewController <UIGestureRecognizerDelegate>{
UIImageView *imageView;CGFloat lastScale;UIView *holderView;
}
-(void)scale:(id)sender;
@end
4、打开PhotoPanDemoViewController.m文件,代码:
//// PhotoPanDemoViewController.m
// PhotoPanDemo//
// Created by jordy on 11-4-6.
// Copyright 2011 vsp. All rights reserved.//
#import "PhotoPanDemoViewController.h"
@implementation PhotoPanDemoViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIView *rootView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 768, 1024)];
rootView.backgroundColor = [UIColor yellowColor];
self.view = rootView;
UIImage *image = [UIImage imageNamed:@"feiche.jpg"];
holderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, image.size.width, image.size.height)];
imageView = [[UIImageView alloc] initWithFrame:[holderView frame]];[imageView setImage:image];
[holderView addSubview:imageView];
//拧的手势
UIPinchGestureRecognizer *pinchRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(scale:)];
[pinchRecognizer setDelegate:self];
[holderView addGestureRecognizer:pinchRecognizer];
[rootView addSubview:holderView];
[rootView release];
}
-(void)scale:(id)sender {
[self.view bringSubviewToFront:[(UIPinchGestureRecognizer*)sender view]];
//当手指离开屏幕时,将lastscale设置为1.0
if([(UIPinchGestureRecognizer*)sender state] == UIGestureRecognizerStateEnded)
{lastScale = 1.0;
return;}
CGFloat scale = 1.0 - (lastScale - [(UIPinchGestureRecognizer*)sender scale]);
CGAffineTransform currentTransform = [(UIPinchGestureRecognizer*)sender view].transform;
CGAffineTransform newTransform = CGAffineTransformScale(currentTransform, scale, scale);
[[(UIPinchGestureRecognizer*)sender view] setTransform:newTransform];
lastScale = [(UIPinchGestureRecognizer*)sender scale];
}
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return ![gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]];
}/
/ Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{return YES;}
- (void)didReceiveMemoryWarning
{// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)dealloc {
[super dealloc];
[imageView release];
[holderView release];
}
@end
相关文章推荐
- ios 根据手势放大或缩小图片
- ios 根据手势放大或缩小图片
- ios 根据手势放大或缩小图片
- iOS开发——手势识别器(用手势实现图片旋转和缩小放大)
- 利用iOS手势与scrollView代理实现图片的放大缩小
- android 如何利用手势放大和缩小一个图片?
- NT_iOS笔记—iOS图片显示1_图片放大缩小
- ios 双指捏合放大缩小图片的例子
- ios 图片拖拽,捏,双击放大缩小,以及保存到相册
- ios图片放大缩小
- iOS不通过手势 实现 放大 缩小视图操作
- android 自定义ImageView实现图片手势滑动,多点触摸放大缩小效果
- android 自定义ImageView实现图片手势滑动,多点触摸放大缩小效果
- ios 图片拖拽,捏,双击放大缩小,以及保存到相册
- 如何使用Ubuntu手机中的手势来放大或缩小图片
- Android 手势滑动,多点触摸放大缩小图片
- android 自定义ImageView实现图片手势滑动,多点触摸放大缩小效果
- Android 之多点触摸 手势拉伸放大缩小图片 并在ImageView上画圆及相框
- android 自定义ImageView实现图片手势滑动,多点触摸放大缩小效果
- android自定义ImageView实现图片手势滑动,多点触摸放大缩小效果