`

iPhone 简单手势的判断

 
阅读更多

不知道4.0SDK带有手势的直接支持没有,至少3.2已经可以用了.但是如果想支持早期的版本,那么手势的识别无疑是一种痛苦,因为需要自己写代码来判定手势...

 

下面代码是判断一个滑动的手势(swipe),虽然很简单但是总体思想就是这样了.当在一个水平,或者纵向滑动时给出一个滑动距离以及偏移量.当实际滑动距离超过指定的距离,且水平或者纵向的偏移量小于指定的偏移量则视为这个滑动手势判定成功!

 

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
	UITouch *touch = touches.anyObject; 
	CGPoint currentTouchPosition = [touch locationInView:self]; 
	
	if (fabsf(startTouchPosition.x - currentTouchPosition.x) >= 
		HORIZ_SWIPE_DRAG_MIN && 
		fabsf(startTouchPosition.y - currentTouchPosition.y) <= 
		VERT_SWIPE_DRAG_MAX) 
	{ 
		// Horizontal Swipe
		if (startTouchPosition.x < currentTouchPosition.x) {
			NSLog(@"from left");
			dirString = kCATransitionFromLeft;
		}
		else 
			NSLog(@"from right");
			dirString = kCATransitionFromRight;
	} 
	else if (fabsf(startTouchPosition.y - currentTouchPosition.y) >= 
			 HORIZ_SWIPE_DRAG_MIN && 
			 fabsf(startTouchPosition.x - currentTouchPosition.x) <= 
			 VERT_SWIPE_DRAG_MAX)
	{ 
		// Vertical Swipe
		if (startTouchPosition.y < currentTouchPosition.y) 
			dirString = kCATransitionFromBottom;
		else 
			dirString = kCATransitionFromTop;
	} else 
	{
		// Process a non-swipe event. 
		// dirString = NULL;
	}
} 

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{
	if (dirString) 
	{
		// do it 	
	}
}
分享到:
评论

相关推荐

    swift-iPhoneXʀ的触觉手势识别器

    除了`UILongPressGestureRecognizer`,Swift还提供了`UIGestureRecognizerDelegate`协议,通过遵循该协议,你可以实现更精细的控制,例如判断是否允许同时发生多个手势,或者自定义手势识别的行为。 总之,Swift-...

    ios简单实用的界面手势返回上一级

    "ios简单实用的界面手势返回上一级"这个主题旨在介绍如何在应用中实现全界面的手势返回功能,而不仅仅是局限于屏幕边缘的系统默认手势。下面将详细阐述这一功能的实现原理和步骤。 1. **手势识别基础**: iOS中的...

    仿iPhone左右滑动开关

    在这个控件中,用户可以通过简单的左右滑动手势来切换开关状态,其外观和交互都与真实的iPhone硬件开关类似。 滑动开关在iOS开发中通常使用UISwitch类来实现,但在某些情况下,开发者可能希望自定义更符合自己应用...

    js实现类似iphone图片切换效果简单实用

    这些事件用于检测用户的手势,比如滑动。 4. **计算滑动距离**:在`touchmove`事件中,获取手指移动的距离,判断是否达到切换图片的条件。 5. **动画执行**:当满足切换条件时,使用JavaScript改变图片的`display`...

    iphone 多点触摸

    例如,如果要实现一个简单的捏合缩放功能,可以创建一个`UIPinchGestureRecognizer`,并监听其`state`属性变化,根据手势的放大或缩小比例更新视图的大小。 ### 5. 手势识别器(Gesture Recognizers) 苹果提供了...

    滑动弹出面板代码(iPhone)

    当用户滑动时,手势识别器会触发相应的事件,你可以在此处理滑动行为,判断是否应该显示或隐藏面板。 3. **滑动动画** 当手势被识别后,根据滑动距离和方向计算面板的透明度和位置。可以使用UIView的`animate...

    iphone开发之点灯游戏(简单)

    在iOS中,可以通过重写UIControl的`addTarget:action:forControlEvents:`方法或者使用手势识别器(UITapGestureRecognizer)来监听用户的点击操作。当用户点击视图时,会触发相应的事件处理函数。 在事件处理函数中...

    Android仿iphone滑动解锁实例

    Android提供了GestureDetector类,它可以帮助我们识别简单的手势,如滑动、点击等。我们可以创建一个GestureDetector的实例,重写其onDown、onMove和onUp等方法,以监听用户的触摸事件。在onMove方法中,我们可以...

    iPhone手机Home键失灵8大解决方法.docx

    但是如果尝试之后仍不能使用Home键,由此可以判断可能是硬件问题,需要找苹果售后维修中心来解决。 方法三:酒精大法 这个方法需要用户准备一些工具,如医用酒精、棉球、镊子。首先,关闭手机。然后,iPhone与地面...

    Tapeworthy Designing Great iPhone Apps

    5. **多样的交互方式**:iPhone支持多种触控手势,如双击、捏合缩放等,设计师需考虑如何合理利用这些交互方式提升用户体验。 6. **应对“笨拙”的手指**:考虑到用户手指大小不一,设计时需要确保按钮大小适中,...

    谢伟-基于iPhone开发实践 pdf

    1. **触摸交互**:iPhone 和 iPad 的触控屏技术非常先进,支持多点触控,能够实现各种复杂的触摸手势,如滑动、缩放等。 2. **高清视网膜屏幕**:高分辨率的显示屏提供了清晰细腻的视觉体验,这对于图形密集型应用尤...

    Android 高仿iphone滑动解锁

    - 由于SlideViewDemo被描述为“代码简单且方便移植”,这意味着它的设计应该遵循良好的编程实践,具有良好的模块化和可复用性,便于其他开发者在他们的项目中轻松集成。 通过理解并应用以上知识点,开发者可以构建...

    iphone的滚弹珠程序(加速计)

    在滚弹珠游戏中,加速计的数据用于判断设备的倾斜角度,进而推算出弹珠的运动轨迹。 2. **Core Motion框架**: iOS系统提供了Core Motion框架,它封装了对硬件传感器(如加速计、陀螺仪、磁力计等)的访问接口。...

    IPhone pagefun和scrolview 图片的切换

    "IPhone pagefun和scrolview 图片的切换"这个项目可能是一个简单的图片轮播器或者幻灯片展示,利用了这两个组件的优势。下面我们将详细探讨如何在iOS应用中使用PageControl和ScrollView来实现图片的无缝切换。 首先...

    Android 高仿iphone滑动解锁源代码,详见资源描述

    2. **手势识别**:Android提供了`GestureDetector`类,可以用来检测简单的滑动手势。开发者可能使用了`SimpleOnGestureListener`的`onFling`方法来检测快速滑动的动作,然后执行解锁逻辑。 3. **动画效果**:为了使...

    安卓Android源码——仿Iphone风格翻页控件,源码及Jar包.rar

    关键在于计算滑动手势的方向和幅度,从而判断是否需要翻页,以及翻到哪一页。同时,为了实现平滑的动画过渡,可能需要使用Android的动画API,如ObjectAnimator或ValueAnimator。 2. **第三方库使用**: 这个压缩包...

    iOSForceTouch手势识别器,它将针对用户的手指压力变化将力更新流式传输到代理。它使您能够检测压力触摸并监视视图.zip

    在iOS平台上,Force Touch手势是苹果引入的一种创新交互方式,特别是在iPhone 6s及更新的设备上,以及某些iPad型号中。Force Touch技术允许用户通过按压屏幕的力度来感知和控制应用程序,提供了超越轻触和点击的全新...

    PP浏览器(For iPhone/iPad)

    PP浏览器覆盖了iOS移动操作系统,适用于iPhone/iPad/iTouch手机,是首款提供下载音视频功能,首创播放器离线观看,集下载与解压常用几十种压缩包直接预览,超级解压,使浏览器不仅仅是浏览器更成为下载资源管理必备...

    让不懂编程的人爱上iPhone开发(2013秋iOS7版)-第2篇1

    5. **计算得分**:根据滑动条的数值和目标数值计算得分,这涉及到数学运算和条件判断,可能是简单的加减法或更复杂的评分算法。 6. **滑动条(UISlider)**:滑动条是用户界面中常见的控件,用于选取一定范围内的值...

    IOS应用源码之【游戏】-iPhone扫雷游戏.rar

    【游戏】★★★★-iPhone扫雷游戏是一款基于iOS平台开发的经典的扫雷游戏。这款源码可以帮助iOS开发者深入了解游戏开发的细节,特别是针对Objective-C编程语言和UIKit框架的应用。以下是这个游戏源码中涉及的关键...

Global site tag (gtag.js) - Google Analytics