//聯(lián)系人:石虎QQ: 1224614774昵稱(chēng):嗡嘛呢叭咪哄
/**
注意點(diǎn): 1.看 GIF 效果圖.
2.看連線視圖的效果圖.
3.看實(shí)現(xiàn)代碼(直接復(fù)制實(shí)現(xiàn)效果).
*/
一、GIF 效果圖:
二、連線視圖的效果圖:
圖1:
三、實(shí)現(xiàn)代碼:
=======
================================
=======
控制器1:
//? ViewController.m
//手勢(shì)dome
//
//? Created by石虎on 2017/7/26.
//? Copyright ? 2017年shihu. All rights reserved.
//
#import"ViewController.h"
@interfaceViewController()
@property(weak,nonatomic)IBOutletUIImageView*imageView;
@property(nonatomic)CGFloatlastRotation;//最后一次旋轉(zhuǎn)
@end
/**
UIGestureRecognize的子類(lèi)類(lèi)別有以下幾種:
UITapGestureRecognizer? ? ? ? ? ? //輕拍識(shí)別器
UIPinchGestureRecognizer ? ? ? ? //捏合識(shí)別器
UIRotationGestureRecognizer ? ? //旋轉(zhuǎn)識(shí)別器
UISwipeGestureRecognizer ? ? ? //掃動(dòng)識(shí)別器
UIPanGestureRecognizer? ? ? ? //拖動(dòng)識(shí)別器
UILongPressGestureRecognizer //長(zhǎng)按識(shí)別器
下面的例子我是用UIPinchGestureRecognizer和UIRotationGestureRecognizer通過(guò)手勢(shì)實(shí)現(xiàn)圖片旋轉(zhuǎn)和縮小放大。
*/
@implementationViewController
- (void)viewDidLoad {
[superviewDidLoad];
//添加捏合手勢(shì)識(shí)別器,changeImageSize:方法實(shí)現(xiàn)圖片的放大與縮小
UIPinchGestureRecognizer*pinchRecognizer = [[UIPinchGestureRecognizeralloc]initWithTarget:selfaction:@selector(changeImageSize:)];
[self.viewaddGestureRecognizer:pinchRecognizer];
//添加旋轉(zhuǎn)手勢(shì)識(shí)別器,rotateImage:方法實(shí)現(xiàn)圖片的旋轉(zhuǎn)
UIRotationGestureRecognizer*rotateRecognizer = [[UIRotationGestureRecognizeralloc]initWithTarget:selfaction:@selector(rotateImage:)];
[self.viewaddGestureRecognizer:rotateRecognizer];
}
#pragma mark --捏合手勢(shì)識(shí)別器
-(void)changeImageSize:(UIPinchGestureRecognizer*)recognizer
{
CGRectframe =self.imageView.frame;
//監(jiān)聽(tīng)兩手指滑動(dòng)的距離,改變imageView的frame
frame.size.width= recognizer.scale*128;
frame.size.height= recognizer.scale*128;
self.imageView.frame= frame;
//保證imageView中心不動(dòng)
self.imageView.center=CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2);
}
#pragma mark -旋轉(zhuǎn)手勢(shì)識(shí)別器監(jiān)聽(tīng)
-(void)rotateImage:(UIRotationGestureRecognizer*)rotateRecognizer
{
//改變imageView的角度,使圖片旋轉(zhuǎn)
if([rotateRecognizerstate]==UIGestureRecognizerStateEnded) {
self.lastRotation=0.0;
return;
}
CGAffineTransformcurrentTransform =self.imageView.transform;
CGFloatrotation =0.0- (self.lastRotation- rotateRecognizer.rotation);
//拿到當(dāng)前的位置和尺寸
CGAffineTransformnewTransform =CGAffineTransformRotate(currentTransform,rotation);
self.imageView.transform= newTransform;
//顯示最后一次的位置
self.lastRotation= rotateRecognizer.rotation;
}
@end
=======
================================
=======
謝謝!!!