UITapGestureRecognizer(敲擊)
UipinchGestureRecognizer(縮放)
UIRotationGestureRecognizer(旋轉(zhuǎn))
UISwipeGestureRecognizer(輕掃)
UIPanGestureRecognizer(拖拽)
UIScreenEdgePanGestureRecognizer
UILongPRessGestureRecognizer(長按)
#import "ViewController.h"@interface ViewController ()<UIGestureRecognizerDelegate>@property (weak, nonatomic) IBOutlet UIView *iconView;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad];#warning 要實(shí)現(xiàn)手勢操作userInteractionEnabled必須設(shè)為YES; // 1.旋轉(zhuǎn)手勢// [self testRotate]; // 2.捏合手勢// [self testPinch]; // 3.同時(shí)進(jìn)行捏合和旋轉(zhuǎn) // 同時(shí)進(jìn)行捏合和旋轉(zhuǎn)需要實(shí)現(xiàn)代理方法// [self testPinchAndRotate]; // 4.測試拖拽 [self testPan]; }#pragma mark - 拖拽手勢- (void)testPan{ UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panView:)]; [_iconView addGestureRecognizer:pan]; }/** * 拖拽手勢 */- (void)panView:(UIPanGestureRecognizer *)pan{ UIView *panView = pan.view; // 被拖拽的view //1.view上移動(dòng)的位置 CGPoint translation = [pan translationInView:panView]; // 在view上拖拽的位置 CGPoint center = panView.center; center.x += translation.x; center.y += translation.y; panView.center = center; // 2.清空移動(dòng)的位置 [pan setTranslation:CGPointZero inView:panView];}#pragma mark - 代理方法- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{ return YES;}#pragma mark - 旋轉(zhuǎn)和縮放- (void)testPinchAndRotate{ [self testPinch]; [self testRotate];}#pragma mark - 縮放手勢- (void)testPinch{ UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinch:)];#warning 如果只是實(shí)現(xiàn)單個(gè)縮放手勢可以不用實(shí)現(xiàn)代理方法 pinch.delegate = self; [_iconView addGestureRecognizer:pinch];}/** * 捏合 */- (void)pinch:(UIPinchGestureRecognizer *)pinch{ pinch.view.transform = CGAffineTransformScale(pinch.view.transform, pinch.scale, pinch.scale); pinch.scale = 1; // 可以認(rèn)為每次捏合后縮放的比例都重新重置為1}#pragma mark - 旋轉(zhuǎn)手勢- (void)testRotate{ UIRotationGestureRecognizer *rotate = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotate:)]; [_iconView addGestureRecognizer:rotate];}/** * 旋轉(zhuǎn) */- (void)rotate:(UIRotationGestureRecognizer *)rotate{ rotate.view.transform = CGAffineTransformRotate(rotate.view.transform, rotate.rotation); rotate.rotation = 0; // 每次旋轉(zhuǎn)后旋轉(zhuǎn)的角度重置為0}@end新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注