UI--Gesture
2015-10-17 17:33
363 查看
别的不说 上干货
各种手势用法
各种手势用法
1.轻拍 UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction)]; self.imv.userInteractionEnabled = YES;//因为图片会阻断事件,所以在其上面添加手势的时候一定要打开交互 [self.imv addGestureRecognizer:tap]; // 点击次数 tap.numberOfTapsRequired = 2; // 触控点个数 tap.numberOfTouchesRequired = 2; ################### - (void)tapAction{ NSLog(@"AAAAAA"); } //imv 是你要作用的对象
2.长按 UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPress:)]; self.imv.userInteractionEnabled = YES; [self addGestureRecognizer:longPress]; ############# - (void)longPress:(UILongPressGestureRecognizer *)longPress{ if (longPress.state == UIGestureRecognizerStateBegan) { NSLog(@"hehahah"); } }
3.旋转 UIRotationGestureRecognizer *rotate = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotateAction:)]; self.imv.userInteractionEnabled = YES; [self.imv addGestureRecognizer:rotate]; ####### - (void)rotateAction:(UIRotationGestureRecognizer *)rotateAction{ self.imv.transform = CGAffineTransformRotate(self.imv.transform, rotateAction.rotation); [rotateAction setRotation:0]; } 注:transform 在这里是变换的意思
4 捏合 UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchAction:)]; self.imv.userInteractionEnabled = YES; [self.imv addGestureRecognizer:pinch]; ######## - (void)pinchAction:(UIPinchGestureRecognizer *)pinchAction{ self.imv.transform = CGAffineTransformScale(self.imv.transform, pinchAction.scale, pinchAction.scale); //1是倍数的意思----这是清空之前的状态 pinchAction.scale = 1; }
5.平移 UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panAction:)]; self.imv.userInteractionEnabled = YES; [self.imv addGestureRecognizer:pan]; ######### - (void)panAction:(UIPanGestureRecognizer *)sender{ NSLog(@"pan"); //取到点的信息 CGPoint point = [sender translationInView:self.imv]; self.imv.transform = CGAffineTransformTranslate(self.imv.transform, point.x, point.y); //把每次保存的之前一次的移动距离清空 [sender setTranslation:(CGPointZero) inView:self.imv]; 每次平移都会先回到原点,然后再动 self.imv.transform = CGAffineTransformMakeTranslation(point.x, point.y); } 注:translation 是平移的意思 translateTransfrom 平移变换
6. 清扫 UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction)]; self.imv.userInteractionEnabled = YES; swipe.direction = UISwipeGestureRecognizerDirectionUp; [self addGestureRecognizer:swipe]; ##########
7. 边缘识别 UIScreenEdgePanGestureRecognizer *edge = [[UIScreenEdgePanGestureRecognizer alloc]initWithTarget:edge action:@selector(tapAction)]; self.imv.userInteractionEnabled = YES; [self addGestureRecognizer:edge];
相关文章推荐
- NGUI实现输入框和进度条
- 第一篇 UEditor入门部署和体验
- leetcode : 4 Median of Two Sorted Arrays
- POJ 3368 Frequent values
- 【学习总结】UIGestureRecognizer(手势识别器)
- EasyUI - SplitButton 分割按钮
- Android中bluetooth的架构
- Android Bluetooth蓝牙开发\蓝牙协议\蓝牙通信例子_Android支持蓝牙4.0版本_BLE开发
- EasyUI - Menu 菜单
- UISearchBar自定义取消按钮
- 读《认知与设计:理解UI设计准则》第二章
- EasyUI - Messager消息框
- 使用Autolayout实现UITableView的Cell动态布局和高度动态改变
- 63 Unique Paths II
- Java基础编程8-特殊流程控制语句-continue的用法
- IOS 轮播图(UIScrollView)
- UI基础控件
- UI - UITableViewControllerAndCustomCell
- EasyUI - Dialog 对话框
- 浅析Easyui Datagrid的Rownumber行号显示