`
sunqichao
  • 浏览: 28535 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

使用iOS手势UIGestureRecognizer

    博客分类:
  • IOS
阅读更多

UIKit中包含了UIGestureRecognizer类,用于检测发生在设备中的手势。UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,它有下面一些子类用于处理具体的手势:  

  1、拍击UITapGestureRecognizer (任意次数的拍击)   
  2、向里或向外捏UIPinchGestureRecognizer (用于缩放)   
  3、摇动或者拖拽UIPanGestureRecognizer   
  4、擦碰UISwipeGestureRecognizer (以任意方向)   
  5、旋转UIRotationGestureRecognizer (手指朝相反方向移动)   
  6、长按UILongPressGestureRecognizer  
 
对于不同类型的手势识别器,具有不同的配置属性。比如UITapGestureRecognizer,可以配置拍击次数。界面接收到手势之后,可以发送一个消息,用于处理响应手势动作后的任务。当然,不同的手势识别器,发送的消息方法也会有所不同。下面列举几个具体示例代码:  

 
一个手指,拍击两次手势 
 
// 创建一个手势识别器 
 
UITapGestureRecognizer *oneFingerTwoTaps = 
 
  [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(oneFingerTwoTaps)] autorelease]; 
 
// Set required taps and number of touches 
 
[oneFingerTwoTaps setNumberOfTapsRequired:2]; 
 
[oneFingerTwoTaps setNumberOfTouchesRequired:1]; 
 
// Add the gesture to the view 
 
[[self view] addGestureRecognizer:oneFingerTwoTaps]; 
 
消息方法oneFingerTwoTaps 
 
- (void)oneFingerTwoTaps 
 

 
  NSLog(@"Action: One finger, two taps"); 
 

 
两个手指,拍击两次手势 
 
    UITapGestureRecognizer *twoFingersTwoTaps = 
 
      [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(twoFingersTwoTaps)] autorelease]; 
 
    [twoFingersTwoTaps setNumberOfTapsRequired:2]; 
 
    [twoFingersTwoTaps setNumberOfTouchesRequired:2]; 
 
    [[self view] addGestureRecognizer:twoFingersTwoTaps]; 
 
消息方法twoFingersTwoTaps 
 
    - (void)twoFingersTwoTaps { 
 
      NSLog(@"Action: Two fingers, two taps"); 
 
    } 
 
 
一个手指向上、向下擦碰手势 
 
// 向上擦碰 
 
    UISwipeGestureRecognizer *oneFingerSwipeUp = 
 
      [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(oneFingerSwipeUp:)] autorelease]; 
 
    [oneFingerSwipeUp setDirection:UISwipeGestureRecognizerDirectionUp]; 
 
    [[self view] addGestureRecognizer:oneFingerSwipeUp]; 
 
      
 
    - (void)oneFingerSwipeUp:(UISwipeGestureRecognizer *)recognizer 
 
    { 
 
      CGPoint point = [recognizer locationInView:[self view]]; 
 
      NSLog(@"Swipe up - start location: %f,%f", point.x, point.y); 
 
    } 
 
    // 向下擦碰 
 
    UISwipeGestureRecognizer *oneFingerSwipeDown = 
 
      [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(oneFingerSwipeDown:)] autorelease]; 
 
    [oneFingerSwipeDown setDirection:UISwipeGestureRecognizerDirectionDown]; 
 
    [[self view] addGestureRecognizer:oneFingerSwipeDown]; 
 
      
 
    - (void)oneFingerSwipeDown:(UISwipeGestureRecognizer *)recognizer 
 
    { 
 
      CGPoint point = [recognizer locationInView:[self view]]; 
 
      NSLog(@"Swipe down - start location: %f,%f", point.x, point.y); 
 
    } 
 
旋转手势 
 
UIRotationGestureRecognizer *twoFingersRotate = 
 
  [[[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(twoFingersRotate:)] autorelease]; 
 
[[self view] addGestureRecognizer:twoFingersRotate]; 
 
 
 
- (void)twoFingersRotate:(UIRotationGestureRecognizer *)recognizer 
 

 
  // Convert the radian value to show the degree of rotation 
 
  NSLog(@"Rotation in degrees since last change: %f", [recognizer rotation] * (180 / M_PI)); 
 

 
向里或向外捏的手势 
 
UIPinchGestureRecognizer *twoFingerPinch = 
 
  [[[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(twoFingerPinch:)] autorelease]; 
 
[[self view] addGestureRecognizer:twoFingerPinch]; 
 
 
 
- (void)twoFingerPinch:(UIPinchGestureRecognizer *)recognizer 
 

 
  NSLog(@"Pinch scale: %f", recognizer.scale); 
 
}

分享到:
评论

相关推荐

    iOS手势集合

    iOS手势主要包括基本手势、复合手势以及自定义手势。 1. 基本手势: - `UIPanGestureRecognizer`: 平移手势,用于检测用户在屏幕上进行的平移操作。 - `UIPinchGestureRecognizer`: 捏合手势,用于识别用户的手指...

    ios手势操作演示

    本项目"ios手势操作演示"是一个使用Swift编写的示例,旨在帮助开发者理解和应用iOS中的手势识别技术。 Swift是Apple为iOS、macOS、watchOS和tvOS平台推出的一种强大且易学的编程语言,它具有现代编程语言的特点,如...

    IOS手势解锁

    **iOS手势解锁详解** 在iOS操作系统中,手势解锁是一种安全且直观的设备解锁方式,它允许用户通过在触摸屏上绘制特定的图案来解锁设备。本文将深入探讨iOS手势解锁的功能、工作原理以及如何实现这一功能。 ### 一...

    ios手势相关资料

    以下是一些关于iOS手势的重要知识点: 1. **UIGestureRecognizer**: 这是iOS中的主要手势类,它提供了一个框架,用于识别并响应各种触摸事件。UIGestureRecognizer有多种子类,如UIPanGestureRecognizer(拖动)、...

    iOS手势旋转缩放拖拽图片

    在iOS SDK中,`UIGestureRecognizer` 是所有手势识别类的基类,其中包括常见的 `UIPanGestureRecognizer`(用于拖动)、`UIPinchGestureRecognizer`(用于缩放)和`UIRotationGestureRecognizer`(用于旋转)。...

    iOS手势识别的详细使用方法(拖动,缩放,旋转,点击,手势依赖,自定义手势)

    在iOS应用开发中,手势识别是提升用户体验的关键因素之一,让用户能够通过自然的手势与界面进行交互。本文将深入探讨如何在iOS中实现各种手势识别,包括拖动、缩放、旋转、点击以及手势依赖和自定义手势。 1. ...

    ios 常见手势

    在iOS开发中,手势识别(Gesture Recognizers)是构建用户交互界面的重要...总之,理解并熟练使用iOS中的各种手势识别器对于提升应用的用户体验至关重要。正确地实现和组合这些手势,可以使你的应用更加直观、易用。

    iOS手势代码(旋转、缩放、拖拽等)

    iOS手势识别为开发者提供了丰富的用户交互可能性。通过`UIGestureRecognizer`及其子类,我们可以轻松地添加点击、双击、旋转、缩放和拖拽等手势到应用中,从而提升用户体验。在实际项目中,根据需求调整手势的灵敏度...

    IOS应用源码之IOS手势滑动截屏.zip

    这个“iOS应用源码之iOS手势滑动截屏”压缩包中包含的资源,显然是一份用于实现这一功能的源代码。这份源码可以帮助开发者深入了解如何在自己的iOS应用中集成手势识别和屏幕截图的机制,提升用户体验。 首先,我们...

    iOS 开发 手势与触摸事件

    在iOS开发中,手势识别(Gesture Recognizers)和触摸事件(Touch Events)是构建用户交互界面不可或缺的部分。这些技术使得应用程序能够对用户的屏幕操作做出响应,从而提供更加自然和直观的用户体验。本教程将深入...

    ios-手势控制:点击、滑动、平移、捏合、旋转、长按、轻扫.zip

    只能使用UIGestureRecognizer的子类识别手势,每一个子类识别一个特定的手势。详细介绍。 这个demo使用了以下七种手势: 1. UITapGestureRecognizer 2. UISwipeGestureRecognizer 3. UIPanGestureRecognizer 4. ...

    ios-最新手势滑动返回,最新效果.zip

    1. **UIGestureRecognizer**:这是iOS SDK中处理用户手势的类,如轻触、滑动、旋转等。在这个场景中,我们通常会使用UISwipeGestureRecognizer,它可以识别用户向左或向右的滑动手势。 2. **UINavigationController...

    ios 手势右滑视觉差 效果类似微信QQ等返回操作

    1. **自定义手势识别**:通过继承`UIGestureRecognizer`或者使用`UIPanGestureRecognizer`,来识别并处理用户的手势操作,特别是右滑手势。 2. **视图控制器的堆栈管理**:在用户滑动过程中,需要正确地管理视图控制...

    ios手势和触摸代码完整版.7z

    这份"ios手势和触摸代码完整版.7z"资源很可能是包含了实现这些功能的各种示例代码,帮助开发者深入理解和实践。 首先,我们要了解iOS中的基本触摸事件。iOS设备的屏幕可以检测到多个触摸点,这些触摸事件主要分为...

    UIGestureRecognizer手势

    总之,`UIGestureRecognizer`是iOS开发中的重要组成部分,熟练掌握并灵活运用各种手势,可以提升应用程序的互动性和可玩性,给用户带来更加直观、自然的操控体验。通过理解手势的基础概念、类型和配置,以及如何在...

    ios手势资料

    以下是一些关于iOS手势资料的关键知识点: 1. **UIGestureRecognizer**: 这是iOS SDK中的一个基础类,用于识别和处理各种触摸事件。它提供了多种子类,如UIPanGestureRecognizer(拖动)、UITapGestureRecognizer...

    iOS自定义手势demo

    接下来,我们将详细探讨这四种手势的实现原理及相关的iOS手势识别技术。 1. **自定义手势识别器**: iOS中的手势识别器(UIGestureRecognizer)是UIKit框架的一部分,用于检测并解释用户的触摸行为。开发者可以...

    IOS自定义手势

    在iOS开发中,手势识别(Gesture Recognizers)是构建用户界面的重要组成部分,它允许应用程序响应用户的触摸动作。本文将深入探讨如何在iOS中实现自定义手势,特别是如何创建一个识别屏幕上画十字的手势。 首先,...

    有关ios手势

    总结,iOS手势识别为开发者提供了丰富的交互方式,使得应用的用户体验更加直观和自然。通过合理运用基础手势和自定义手势,以及妥善处理手势冲突,开发者可以创造出更加生动、有趣的iOS应用。在实际项目中,手势的...

Global site tag (gtag.js) - Google Analytics