UIGestureRecognizer学习之——UISwipeGestureRecognizer
来源:互联网 发布:淘宝开店身份证要求 编辑:程序博客网 时间:2024/06/05 01:09
UISwipeGestureRecognizer是UIGestureRecognizer的子类。
UISwipeGestureRecognizer除了继承UIGestureRecognizer的属性外,还提供如下俩个属性:
direction: //设置该手势处理器处理该方向的轻扫。该属性支持UISwipeGestureRecognizerDirectionRight(1<<0)、UISwipeGestureRecognizerDirectionLeft(1<<1)、UISwipeGestureRecognizerDirectionUp(1<<2)、UISwipeGestureRecognizerDirectionDown(1<<3)4个枚举值numberOfTouchesRequired: //指定该手势处理器只处理几个手指的触碰事件
示例:使用UISwipeGestureRecognizer处理轻扫手势。
interface FKViewController : UIViewController@property (strong, nonatomic) IBOutlet UIView *gv;@property (strong, nonatomic) IBOutlet UILabel *label;@end
@implementation FKViewController- (void)viewDidLoad{ [super viewDidLoad]; self.view.backgroundColor = [UIColor lightGrayColor]; self.gv.layer.borderWidth = 2; self.gv.layer.cornerRadius = 6; // 设置gv控件支持用户交互 self.gv.userInteractionEnabled = YES; // 设置gv控件支持多点触碰 self.gv.multipleTouchEnabled = YES; for (int i = 0 ; i < 4 ; i++) { // 创建手势处理器,指定使用该控制器的handleSwipe:方法处理轻扫手势 UISwipeGestureRecognizer* gesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipe:)]; // 设置该点击手势处理器只处理i个手指的轻扫手势 gesture.numberOfTouchesRequired = 1; // 指定该手势处理器只处理1 << i方向的轻扫手势 gesture.direction = 1 << i; // 为gv控件添加手势处理器。 [self.gv addGestureRecognizer:gesture]; }}// 实现手势处理器的方法,该方法应该声明一个形参。// 当该方法被激发时,手势处理器会作为参数传给该方法的参数。- (void) handleSwipe:(UISwipeGestureRecognizer*)gesture{ // 获取轻扫手势的方向 NSUInteger direction = gesture.direction; // 根据手势方向的值得到方向字符串 NSString* dirStr = direction == UISwipeGestureRecognizerDirectionRight ? @"向右" : (direction == UISwipeGestureRecognizerDirectionLeft ? @"向左" : (direction == UISwipeGestureRecognizerDirectionUp ? @"向上" :@"向下")); NSUInteger touchNum = gesture.numberOfTouchesRequired; self.label.text = [NSString stringWithFormat: @"用户使用%d个手指进行轻扫,方向为:%@" , touchNum , dirStr]; // 指定2秒后清除label的文本 [self.label performSelector:@selector(setText:) withObject:@"" afterDelay:2];}@end
上面程序使用循环创建了4个轻扫手势处理器,这4个手势处理器分别处理向上、向下、向左、向右4个方向的手势,而且指定了该手势处理器只处理一个手指的“轻扫”手势。当用户用一个手指执行“轻扫”手势时,程序将会激发handleSwipe:方法,该方法仅仅是将用户的手势信息显示在UILabel上。
1 0
- UIGestureRecognizer学习之——UISwipeGestureRecognizer
- iOS学习之——UIGestureRecognizer
- UIGestureRecognizer学习之——UITapGestureRecognizer
- UIGestureRecognizer学习之——UIPinchGestureRecognizer
- UIGestureRecognizer学习之—— UIRotationGestureRecognizer
- UIGestureRecognizer学习之——UIPanGestureRecognizer
- UIGestureRecognizer学习之—— UILongPressGestureRecognizer
- ios知识点 之——手势学习 UIGestureRecognizer
- ios学习之UISwipeGestureRecognizer手势识别
- IOS开发之手势——UIGestureRecognizer
- IOS开发之手势——UIGestureRecognizer
- IOS开发之手势—UIGestureRecognizer 共存
- 手势——UIGestureRecognizer
- iOS——UIGestureRecognizer
- 手势识别器(UIGestureRecognizer)- UISwipeGestureRecognizer(轻扫)
- IOS开发之手势——UIGestureRecognizer 共存
- IOS开发之手势——UIGestureRecognizer 共存
- IOS开发之手势——UIGestureRecognizer 共存
- 图片文字垂直居中的方法
- PHP 取得刷么照片EXIF中GPS的经纬度,并根据GPS进行GOOGLE地图定位
- 基于域名的虚拟主机出现[warn] _default_ VirtualHost overlap on port 80, the first has precedence
- 【转】自定义ECShop的Flash轮播图片样式
- 【转】ecshop首页flash轮播图替换成js轮播 焦点图转换JS
- UIGestureRecognizer学习之——UISwipeGestureRecognizer
- (转载)Android从按下开机键到启动发生了什么
- MySQL Query Profiler
- phpmyadmin管理不在本地的数据库
- 【转】ECShop设置默认的配送方式和支付方式
- DW中重置关联文件
- apache无法启动提示the requested operation has failed的解决方法
- 为CentOS配置snmp代理
- 使用VS2015进行 SignalR 和 Egret 集成