您的位置:首页 > 产品设计 > UI/UE

UI - UIGestureRecognizer 手势

2015-08-26 17:18 375 查看
UIGestureRecognizer里有7个手势,下面介绍3种常用的手势

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
// 如果图片的名字是以png结尾 可以只写图片名 否则图片名和格式都要写出来
//    UIImage *image = [UIImage imageNamed:@"2"];
UIImage *image = [UIImage imageWithContentsOfFile:@"/Users/lanou/Desktop/壁纸/97054020.jpg"];
UIImageView *imageView = [[UIImageView alloc]initWithImage:(image)];
imageView.frame = CGRectMake(50, 50, 250, 330);
imageView.userInteractionEnabled = YES;
[self.view addSubview:imageView];
[imageView release];

// 创建一个轻拍手势
/*
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(doTap:)];
[imageView addGestureRecognizer:tap];
[tap release];
*/

// 创建一个旋转手势

UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(doRotation:)];
[imageView addGestureRecognizer:rotation];
rotation.delegate = self;
[rotation release];

// 创建一个捏合手势
UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(doPinch:)];
[imageView addGestureRecognizer:pinch];
pinch.delegate = self;
[pinch release];

/*
NSMutableArray *arr = [NSMutableArray arrayWithCapacity:0];
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(50, 50, 100, 100)];
for (int i = 1; i <= 2; i++) {
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"1-%d(被拖移).tiff", i]];
[arr addObject:image];
}
imageView.animationImages = arr;
[imageView setAnimationDuration:0.5];
[imageView setAnimationRepeatCount:4];
[imageView startAnimating];
[self.view addSubview:imageView];
[imageView release];
*/

}

- (void)doTap:(UITapGestureRecognizer *)tap
{
// 通过tap.view可以获得当前手势放置在哪一个view上
//    NSLog(@"被点击了 (╯‵□′)╯︵┻━┻ FUCK NO%@", tap.view);

//进入第二个界面
//1>创建第二个界面
SecondViewController *secondVC = [[SecondViewController alloc]init];
//2>进入
[self presentViewController:secondVC animated:YES completion:^{
}];
[secondVC release];
}
#pragma mark - doRotation
- (void)doRotation:(UIRotationGestureRecognizer *)rotation
{
//    NSLog(@"旋转木马��");
// 在做旋转的时候对应的有两个函数,一个是CGAffineTransformMakeRotation 还有一个就是CGAffineTransformRotation这两个函数的区别就在于第二个函数可以在上次的基础上继续旋转,第一个函数只能做一次旋转
// 1.在上次的基础上做旋转
rotation.view.transform = CGAffineTransformRotate(rotation.view.transform, rotation.rotation);
// 2.将手势识别器的旋转角度归零 下次让其在新的旋转角度上进行旋转 而不是累加
rotation.rotation = 0;

}
#pragma mark - doPinch
- (void)doPinch:(UIPinchGestureRecognizer *)pinch
{
pinch.view.transform = CGAffineTransformScale(pinch.view.transform, pinch.scale , pinch.scale);
pinch.scale = 1;
}

#pragma mark - 几个手势同时使用
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ui 手势