一:手势事件类型
1.父类
UIGestureRecognizer 是一个抽象类,是所有手势事件的父类。
The concrete subclasses of UIGestureRecognizer are the following:
UITapGestureRecognizer //轻拍
UIPinchGestureRecognizer //捏合
UIRotationGestureRecognizer //旋转
UISwipeGestureRecognizer //扫
UIPanGestureRecognizer//拖拽
UILongPressGestureRecognizer //长按
2,如何添加手势事件及响应
(1)添加:调用 UIVIEW及其子类的 addGestureRecognizer:
(2)响应函数样式比如是下面两种的一种形式
- (void)handleGesture;
- (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer;
- (void)viewDidLoad {
//---tap gesture---
UITapGestureRecognizer *tapGesture =[[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(handleTapGesture:)];
tapGesture.numberOfTapsRequired = 2;
[imageView addGestureRecognizer:tapGesture];
[tapGesture release];
[super viewDidLoad];
}
//---handle tap gesture---
-(IBAction) handleTapGesture:(UIGestureRecognizer *) sender {
if (sender.view.contentMode == UIViewContentModeScaleAspectFit)
sender.view.contentMode = UIViewContentModeCenter;
else
sender.view.contentMode = UIViewContentModeScaleAspectFit;
}
3。
UITapGestureRecognizer
numberOfTapsRequired :设置轻击的次数,默认值为1
numberOfTouchesRequired :触点的数量,默认值为1,即手指数
UIPinchGestureRecognizer
当两个手指靠近表示zoom-in,当两个手指分离表示zoom-out。
scale
@property(nonatomic) CGFloat scale,放大缩小因子
velocity
@property(nonatomic, readonly) CGFloat velocity ,只读属性 ,表示移动速度
UIRotationGestureRecognizer
rotation :旋转角度
velocity :速度
UISwipeGestureRecognizer
direction :扫动方向,默认值UISwipeGestureRecognizerDirectionRight
typedef enum {
UISwipeGestureRecognizerDirectionRight = 1 << 0,
UISwipeGestureRecognizerDirectionLeft = 1 << 1,
UISwipeGestureRecognizerDirectionUp = 1 << 2,
UISwipeGestureRecognizerDirectionDown = 1 << 3
} UISwipeGestureRecognizerDirection;
numberOfTouchesRequired : 触点的数量,默认值为1,即手指数
UIPanGestureRecognizer
maximumNumberOfTouches :最大触摸的数量
minimumNumberOfTouches :最少触摸的数量
– translationInView:
A point identifying the new location of a view in the coordinate system of its designated superview.
(一个点确定一个新的位置在其指定的父视图的坐标系统)
– setTranslation:inView:
The velocity of the pan gesture, which is expressed in points per second. The velocity is broken into horizontal and vertical components.
(手势的速度,这是表示在每分每秒。速度分解为水平和垂直分量。)
– velocityInView:
- (CGPoint)velocityInView:(UIView *)view
UILongPressGestureRecognizer
minimumPressDuration :长按最短的时间
numberOfTouchesRequired :
numberOfTapsRequired :
allowableMovement :长按时运行移动的最大距离,默认值为10个像素
手指事件生命周期(状态)
取得当前手势状态
@property(nonatomic,readwrite) UIGestureRecognizerState state;
Possible ----> Began ----> [Changed] ----> Cancelled
Possible ----> Began ----> [Changed] ----> Ended
typedef enum {
UIGestureRecognizerStatePossible,
UIGestureRecognizerStateBegan,
UIGestureRecognizerStateChanged,
UIGestureRecognizerStateEnded,
UIGestureRecognizerStateCancelled,
UIGestureRecognizerStateFailed,
UIGestureRecognizerStateRecognized = UIGestureRecognizerStateEnded } UIGestureRecognizerState;
分享到:
相关推荐
标题中的"android-sdk-4.2.2 android-sdk-4.2.2-platforms"指的是Android SDK的一个特定版本,即Android 4.2.2(API级别17),该版本的SDK平台组件。这个版本是Android操作系统的 Jelly Bean 版本的一部分,发布于...
- **手势与触摸**: 学习如何处理用户的触摸事件和手势操作,例如滑动、双击等,这些是提高应用交互性的关键技巧。 - **表格视图与视图控制器**: 表格视图是iOS应用中常见的界面元素,本书教授如何使用表格视图展示...
5. **OpenGL ES 3.0 Preview**:虽然正式支持是在稍后的版本中引入的,但4.1.2开始预览OpenGL ES 3.0,这是一个图形处理的更新,提供了更好的硬件加速和更高级的图形效果,对游戏开发者尤其重要。 6. **Multiscreen...
在这个“多点开发包 SDK”中,包含了用于处理和识别多点触控事件的库和API。这些工具使得开发者能够编写能够识别和响应多个触控点的应用程序,例如手势识别(如滑动、旋转、捏合等)和复杂的手势操作。SDK通常会提供...
开发者可以通过重写`GestureDetector.OnGestureListener`接口中的方法,如`onDown()`, `onFling()`, `onScroll()`等,来响应对应的手势事件。 2. `SwipeRefreshLayout`: 这是Android提供的一个下拉刷新布局,内部...
2. **交互性**:EasyAR SDK允许开发者添加手势识别、语音识别等多种交互方式,提升用户的参与度和沉浸感。例如,用户可以通过手势控制虚拟对象,或者用语音命令与AR内容进行互动。 3. **3D渲染**:基于Unity引擎,...
4. **手势键盘**:在虚拟键盘中增加了手势输入功能,用户可以通过滑动手指来输入文字,提高了输入速度。 5. **日期和时间快捷设置**:在通知栏中,用户可以直接点击日期和时间来快速调整系统设置。 6. **无线显示...
使用NVIDIA预训练模型和Transfer Learning Toolkit 3.0与机器人创建基于手势的交互在这个项目中,我们演示如何训练您自己的手势识别深度学习管道。 我们从预先训练的检测模型开始,使用Transfer Learning Toolkit ...
4. **LLVM 3.0**:Xcode 4.2采用了LLVM 3.0编译器,提供了更快的编译速度和更优化的代码,支持更多语言特性,如C++11。 5. **更快的模拟器**:Xcode 4.2中的iOS模拟器进行了优化,运行速度更快,更接近真实设备的...
AS3(ActionScript 3.0)是Adobe Flash平台的核心编程语言,广泛应用于创建互动式网页、游戏和富媒体应用程序。而微软的Kinect是一款创新的体感输入设备,通过深度传感器和摄像头捕捉用户的身体动作,实现了无触控的...
实现这样的工具栏,我们可以自定义一个UIView子类,添加各种输入相关的按钮,并通过手势识别器或者点击事件来处理用户的交互。 虽然这个项目没有将键盘处理功能封装为一个单独的组件,但这是一个很好的实践,可以...
源码可能会演示如何优雅地处理触摸事件,以及如何实现手势识别。 8. **图形和动画**: Android 3.0加强了图形和动画的能力,源码可能包含使用Canvas、OpenGL ES或动画库进行高性能图形绘制的示例。 9. **内容提供...
它是在以下平台上开发和测试的: Ubuntu 16.04 ROS动力学Openpose软件CUDA 8.0 OpenCV 3.2以上Librealsense SDK 2.10.0+硬体需求项目使用以下硬件: 英特尔酷睿i7 6700HQ Nvidia Mobile Gtx 960 RealSense SR300...
8. **手势识别:** 为了增强用户体验,可能还包含了手势识别功能,比如捏合手势进行图片的缩放。 9. **Android SDK:** 该项目基于Android SDK开发,使用了特定的API级别。根据源码中的其他信息,可能是针对较低...
1. **环境搭建**:在开始VRE编程之前,需要安装VRE 3.0 SDK(Software Development Kit),SDK通常包括了编译器、库文件、示例代码、文档等资源。 2. **语言支持**:VRE可能支持多种编程语言,如C++、Python或者...
同样,可以监听触摸事件,当检测到用户旋转手势(通常是两个手指张开或合拢)时,根据角度差调整`rotation`值。使用`Matrix`类可以更精确地控制旋转,它允许你在坐标空间中对图像进行变换,包括旋转、缩放和平移。 ...
6. **触摸事件处理**:与桌面平台不同,Android设备主要依赖触摸交互,因此理解如何处理触摸事件和手势识别是关键。 7. **多媒体支持**:Flash在处理音频和视频方面具有强大能力,可以轻松集成到Android应用中,...
还会涉及触摸事件处理、手势识别和动画效果的实现。 5. **Intent和Intent Filter**:作为组件间通信的核心机制,Intent的使用方法和Intent Filter的配置是开发者必须掌握的。 6. **数据存储**:探讨SQLite数据库的...
- **键盘手势输入API**:展示了如何实现键盘的手势输入功能,以及如何处理相应的事件。 - **照片Sphere API**:提供全景拍照功能的实现,包括图像的拼接和展示。 - **OpenGL ES 3.0 API**:包含使用新图形库进行3D...
在Android手机特效开发中,开发者可以利用Android SDK提供的丰富的API和工具来创建各种吸引人的视觉效果,提升用户体验。本资源包含的"第12章 手机特效开发"可能涵盖了一系列关于Android特效实现的实例和代码,对于...