`
119568242
  • 浏览: 426970 次
  • 性别: Icon_minigender_1
  • 来自: 深圳/湛江
社区版块
存档分类
最新评论

[ios] 使用iOS手势UIGestureRecognizer

    博客分类:
  • ios
 
阅读更多

老是忘记 mark以下

转自:http://www.oschina.net/code/snippet_54100_8106

 

 

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

    1、拍击UITapGestureRecognizer (任意次数的拍击)  
    2、向里或向外捏UIPinchGestureRecognizer (用于缩放)  
    3、摇动或者拖拽UIPanGestureRecognizer  
    4、擦碰UISwipeGestureRecognizer (以任意方向)  
    5、旋转UIRotationGestureRecognizer (手指朝相反方向移动)  
    6、长按UILongPressGestureRecognizer 

对于不同类型的手势识别器,具有不同的配置属性。比如UITapGestureRecognizer,可以配置拍击次数。界面接收到手势之后,可以发送一个消息,用于处理响应手势动作后的任务。当然,不同的手势识别器,发送的消息方法也会有所不同。下面列举几个具体示例代码: 
http://www.ctolive.com/space-1023-do-blog-id-2107.html 
 
标签: Objective-C iOS
 

代码片段(5)

[代码] 一个手指,拍击两次手势

01 // 创建一个手势识别器
02 UITapGestureRecognizer *oneFingerTwoTaps =
03   [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(oneFingerTwoTaps)] autorelease];
04   
05 // Set required taps and number of touches
06 [oneFingerTwoTaps setNumberOfTapsRequired:2];
07 [oneFingerTwoTaps setNumberOfTouchesRequired:1];
08   
09 // Add the gesture to the view
10 [[self view] addGestureRecognizer:oneFingerTwoTaps];
11  
12 消息方法oneFingerTwoTaps
13 - (void)oneFingerTwoTaps
14 {
15   NSLog(@"Action: One finger, two taps");
16 }

[代码] 两个手指,拍击两次手势

01 UITapGestureRecognizer *twoFingersTwoTaps =
02   [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(twoFingersTwoTaps)] autorelease];
03 [twoFingersTwoTaps setNumberOfTapsRequired:2];
04 [twoFingersTwoTaps setNumberOfTouchesRequired:2];
05 [[self view] addGestureRecognizer:twoFingersTwoTaps];
06  
07 消息方法twoFingersTwoTaps
08 - (void)twoFingersTwoTaps {
09   NSLog(@"Action: Two fingers, two taps");
10 }

[代码] 一个手指向上、向下擦碰手势

01 // 向上擦碰
02 UISwipeGestureRecognizer *oneFingerSwipeUp =
03   [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(oneFingerSwipeUp:)] autorelease];
04 [oneFingerSwipeUp setDirection:UISwipeGestureRecognizerDirectionUp];
05 [[self view] addGestureRecognizer:oneFingerSwipeUp];
06  
07 - (void)oneFingerSwipeUp:(UISwipeGestureRecognizer *)recognizer
08 {
09   CGPoint point = [recognizer locationInView:[self view]];
10   NSLog(@"Swipe up - start location: %f,%f", point.x, point.y);
11 }
12  
13 // 向下擦碰
14 UISwipeGestureRecognizer *oneFingerSwipeDown =
15   [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(oneFingerSwipeDown:)] autorelease];
16 [oneFingerSwipeDown setDirection:UISwipeGestureRecognizerDirectionDown];
17 [[self view] addGestureRecognizer:oneFingerSwipeDown];
18  
19 - (void)oneFingerSwipeDown:(UISwipeGestureRecognizer *)recognizer
20 {
21   CGPoint point = [recognizer locationInView:[self view]];
22   NSLog(@"Swipe down - start location: %f,%f", point.x, point.y);
23 }

[代码] 旋转手势

1 UIRotationGestureRecognizer *twoFingersRotate =
2   [[[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(twoFingersRotate:)] autorelease];
3 [[self view] addGestureRecognizer:twoFingersRotate];
4  
5 - (void)twoFingersRotate:(UIRotationGestureRecognizer *)recognizer
6 {
7   // Convert the radian value to show the degree of rotation
8   NSLog(@"Rotation in degrees since last change: %f", [recognizer rotation] * (180 / M_PI));
9 }

[代码] 向里或向外捏的手势

1 UIPinchGestureRecognizer *twoFingerPinch =
2   [[[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(twoFingerPinch:)] autorelease];
3 [[self view] addGestureRecognizer:twoFingerPinch];
4  
5 - (void)twoFingerPinch:(UIPinchGestureRecognizer *)recognizer
6 {
7   NSLog(@"Pinch scale: %f", recognizer.scale);
8 }
分享到:
评论

相关推荐

    iOS TableView 添加手势方法

    本篇文章将详细讲解如何在iOS的TableView中添加手势以及解决手势与TableView默认行为冲突的问题。 首先,为了在TableView的空白区域添加手势,我们需要创建一个`UITapGestureRecognizer`实例,并将其添加到...

    IOS自定义手势

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

    iOS手势旋转缩放拖拽图片

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

    IOS应用源码之手势和触摸 .rar

    本资源包“IOS应用源码之手势和触摸 .rar”包含了关于iOS手势识别和触摸事件处理的示例代码,这对于理解并熟练运用这些技术非常有帮助。 一、手势识别(GestureRecognizer) 手势识别是iOS SDK中的一个关键特性,...

    UIGestureRecognizer手势

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

    ios-控制器手势拖动返回.zip

    1. **UIGestureRecognizer**: 这是iOS中的手势识别类,它允许我们监听和处理各种触摸事件。在这个场景中,我们主要关注的是`UISwipeGestureRecognizer`或者`UIPanGestureRecognizer`,它们可以识别用户的滑动和拖动...

    ios-UIView加手势方法拓展..zip

    在iOS开发中,手势交互是构建用户界面的重要组成部分,它使得用户可以通过触摸屏幕的各种方式来与应用程序进行互动。本教程将深入探讨如何使用扩展(Extension)和运行时(Runtime)技术,为UIView类添加手势识别...

    ios应用源码之手势和触摸 2018128

    1. **自定义手势识别器**:有时,系统预定义的手势可能无法满足所有需求,开发者可能会创建自定义手势识别器,这通常涉及继承`UIGestureRecognizer`并重写其相关方法。 2. **手势识别器的连锁与冲突**:当多个手势...

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

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

    iOS 开发 手势与触摸事件

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

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

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

    ios开发中手势多点触控实现

    本知识点将深入讲解如何在iOS应用中实现多点触控功能,主要涉及`UIGestureRecognizer`手势识别器和`touchesMoved`方法。 首先,`UIGestureRecognizer`是iOS SDK提供的一种抽象类,用于识别不同的触摸手势,如轻拍...

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

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

    IOS 自定义滚动 Lable 手势锁

    这涉及到手势识别(Gesture Recognition)技术,iOS提供了UIGestureRecognizer类,包括但不限于轻触(Tap)、滑动(Pan)、捏合(Pinch)、旋转(Rotation)和长按(Long Press)等手势。在这个滚动锁中,我们可能会...

    ios 常见手势

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

    ios手势操作演示

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

    iOS手势集合

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

    iOS scorllview加tableview手势问题

    在这种情况下,可以通过调整Gesture的delaysTouchesBegan属性或者使用UIPanGestureRecognizer的minimumNumberOfTouches属性来限制手势的触发条件。 6. **自定义手势识别器**:对于更复杂的需求,如需要同时支持...

    iOS自定义手势demo

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

Global site tag (gtag.js) - Google Analytics