首页
学习
活动
专区
圈层
工具
发布

iOS中手势的应用1. 四类事件的主要方法2. 响应者链3. 手势识别功能(Gesture Recognizer)4. 手势的使用

例如用户对屏幕进行了侧滑,APP就需要对这个手势进行相应的处理,给用户一个反馈。这些相应的事件就都是在UIResponder中定义的。...四类事件的主要方法 有的童鞋可能分不清楚手势当中结束和取消的区别。举个栗子,当正在抚摸自己的爱机屏幕的时候,突然来了一个电话,这个“爱抚”的动作就被临时中断了,这个时候就叫做“取消”,而不是结束。...- iOS 3.2之后,苹果推出了手势识别功能(Gesture Recognizer),在触摸事件处理方面,大大简化了开发者的开发难度 3.1手势识别器(UIGestureRecognizer) 为了完成手势识别...手势识别的使用方法 1.创建手势识别实例 2.设置手势识别属性,例如手指数量,方向等 3.将手势识别附加到指定的视图之上 4.编写手势触发监听方法 每一个手势识别器的用法都差不多,比如UITapGestureRecognizer...的使用步骤如下: //创建手势识别器对象 UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init]; //设置手势识别器对象的具体属性

3K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS 小技能:响应者链的事件传递过程、手势识别器的使用步骤、抽屉效果的实现

    抽屉效果的实现 I 手势识别器 为了完成手势识别,必须借助于手势识别器UIGestureRecognizer。...利用UIGestureRecognizer,能轻松识别用户在某个view上面做的一些常见手势。...(长按) 2、 UITapGestureRecognizer 1.2 手势识别器的使用步骤 每一个手势识别器的用法都差不多,比如UITapGestureRecognizer的使用步骤: //创建手势识别器对象...= 2; // 需要2根手指一起敲击 tap.numberOfTouchesRequired = 2; //添加手势识别器到对应的view上 [self.iconView addGestureRecognizer...:tap]; //监听手势的触发 [tap addTarget:self action:@selector(tapIconView:)]; 1.3 手势识别器的使用 // #import

    1.2K30

    UIGestureRecognizer  手势识别一、概念介绍二、UIView 的分类三、UIGestureRecognizer 抽象类四、UIGestureRecognizerDelegate 代理

    给触摸到的控件以取消控件view对touch的响应,这个时候只有手势识别器响应touch,当设置成NO时,手势识别器识别到触摸之后不会发送touchesCancelled给控件,这个时候手势识别器和控件...默认是NO,这种情况下当发生一个触摸时,手势识别器先捕捉到到触摸,然后发给触摸到的控件,两者各自做出响应。...如果设置为YES,手势识别器在识别的过程中(注意是识别过程),不会将触摸发给触摸到的控件,即控件不会有任何触摸事件。...:(UIPress *)press; 4、 是否支持多手势触发,返回YES,则可以多个手势一起触发方法,返回NO则为互斥 是否允许多个手势识别器共同识别,一个控件的手势识别后是否阻断手势识别继续向下传播...= 3; // 设置能识别到手势的最少的手指的个数 tap.numberOfTouchesRequired = 2; //把手势对象添加到对应的控件中 [self.imgView addGestureRecognizer

    3.8K81

    Swift 中的属性包装器

    在这种情况下,Swift 5.1的属性包装器功能非常有用,因为它使我们能够将此类行为和逻辑直接附加到属性本身上,这通常为代码重用和归纳开辟了新的机会。...要将新的属性包装器应用于任何String属性,只需使用@Capitalized对其进行注释,Swift 就会自动将该注释与上述类型匹配。...属性的属性 属性包装器也可以有自己的属性,并且支持进一步的定制,甚至可以将依赖项注入到包装器类型中。...例如,假设我们正在进行一个项目,该项目使用特性标志来支持新特性和实验的测试和逐步展开,并且我们希望构建一个属性包装器,让我们以不同的方式指定这些标志。...结论 属性包装器无疑是Swift 5.1中最令人兴奋的新功能之一,因为它为代码重用和可定制性打开了许多门,并启用了功能强大的新方法来实现属性级功能。

    3.6K30

    Swift中的原子属性装饰器

    toc Swift中实现原子属性装饰器 原子、非原子属性 通过Property Wrappers来定义一个原子的属性装饰器 Swift中实现原子属性装饰器 来一篇快文,Property Wrappers...我姑且叫它“属性装饰器”,是Swift 5.1中新增的最关键的功能,本文不深入解释,先了解的可以查看Swift 社区SE-0258提议。...原子、非原子属性 Objective-C中的属性默认都是原子的(atomic)。原子的意思是,它支持在不同线程安全的读写。非原子的属性,自然就无法确保这些,但是它的优势是可以快速读取属性。...原子的属性,在不同的线程中不一定是同义的(synonymous) 要实现一个原子属性,可以通过锁来实现,在Swift中通过不同的Apple框架的锁都可以实现这点: 通过Property Wrappers...来定义一个原子的属性装饰器 在此使用NSLock 来实现原子属性。

    1.2K20

    怎样使用 iOS 7 的 AVSpeechSynthesizer 制作有声书(1)

    这本书的每一页都会在显示文字的同一时候朗读文字中的内容。 有声的阅读将让你的 app 在 iTunes 中显得与众不同,同一时候还保护了视力。 有声书尤其受广播听众的喜爱。...你将在模拟器中看到 书的内容是关于松鼠的童谣。尽管不是亚马逊买得最火的读物,但对于本教程来说足够了。 向左滑动进行向后翻页,向右滑动则返回前一页。 噢。...当视图载入完毕,设置要显示的 page,并增加滑动手势的识别器以便用户能通过手势进行翻页。 返回当前页的 RWTPage 对象。 设置 book 属性并将当前页置为第一页。...设置当前页的显示内容。 查找下一页。假设该页存在。则将下一页设置为当前页。 该方法由 swipeNext 手势识别器调用。 查找上一页。假设该页存在。则将上一页设置为当前页。...该方法由 swipePrevious 手势识别器调用。 播放和停止! 这是一个非常要命的问题。

    1.2K30

    窥探Swift之使用Web浏览器编译Swift代码以及Swift中的泛型

    有的小伙伴会问:博主,没有Mac怎么学Swift语言呢,我想学Swift,但前提得买个Mac。非也,非也。...你可以实时观察你代码的运行结果。如果你没有Mac笔记本,那么你只需打开你的浏览器,然后输入上述网址,就可以搞搞Swift这门语言了,灰常好用的呢。下方的截图就是该网址打开的截图。 ?   ...该网站集成了Swift的各种东西,内容虽然是英文的,但是里边的东西还是相当不错的,里边的内容也会随着Swift语言版本的更新而更新。如果你的英文比较好,那么完全可以去这个网站中去汲取你的知识。...下方是该网站的一个截图,也是一个比较好的学习的地方。 ?   Swift中也是支持泛型的,在许多现代编程语言,如C++, Java, C#也都是支持泛型的。泛型,从表面的名字来看,就是宽泛的数据类型。...在Swift中不允许类型隐式转换,也就是说,如果你定义的该函数是交换两个整数的,那么如果你想使用他来交换浮点类型的数据,那么对不起,是不允许这样做的。

    2K50

    iOS_38_手势

    即:官方文档中的next responder 以下是官方文档中关于上一个响应者的图片,即Next Responder 总结起来就是:view有控制器,则传给控制器;否则,传给父view...再次总结:响应者链条传递机制(上一个响应者就是NEXT RESPONDER) 传统监听事件的做法:(不再推荐使用) 六种手势识别器,后面会详细举例: 假设要同一时候监听两种以上的手势...:(UIGestureRecognizer *) 手势识别器的标准做法:三步曲(创建、设置、绑定) 重点关注三种手势识别的状态:開始\结束\取消 官方文档中关于手势识别的状态变化图...(void)addSwipe{ // 1.创建Swipe手势识别器对象,同一时候绑定监听方法(识别到了相应的手势,就会调用监听方法) UISwipeGestureRecognizer *swipe...#pragma mark - 手势识别器的代理方法/** * 是否同意多个手势识别器同一时候有效 * Simultaneously : 同一时候地 */- (BOOL)gestureRecognizer

    1.4K20

    iPhone 16 或将配备可拆卸电池 | Swift 周报 issue 57

    内容大概问题概述:作者遇到了一个编译器相关的问题,涉及如何在 Swift 中安全地在 actor 和非隔离对象之间传递数据。...Swift 解决手势冲突的方案摘要: 这篇文章探讨了在 Swift 开发中处理手势冲突的多种方法。首先介绍了手势冲突的概念,即多个手势识别器竞争同一事件可能导致的问题。...随后详细讨论了以下解决方案:使用手势识别器代理来控制哪些手势可以同时识别。...调整手势识别器的属性,如设置 cancelsTouchesInView 为 false 以避免阻止其他手势的触摸事件,以及调整 delaysTouchesBegan 和 delaysTouchesEnded...使用 require(toFail:) 方法确保一个手势在另一个失败后再尝试识别。创建自定义手势识别器以实现复杂的手势逻辑。

    1.4K00

    拖拽手势和清扫手势冲突时(UIPanGestureRecognizer和UISwipeGestureRecognizer冲突时)

    故事发生在这样的情境上:给整个控制器添加了一个拖拽手势,然后又在控制上的每个Cell上加了左滑清扫手势,然后问题来了:只有拖拽手势起作用,而左滑手势没有效果了,然后怎么解决这个问题呢!...当给整个控制器添加了拖拽手势(UIPanGestureRecognizer),然后在控制器里面的UITableViewCell又添加了左滑清扫手势(UISwipeGestureRecognizer),造成了只有拖拽手势起了作用...,而Cell的左滑手势已经不能滑动了!...,避免手势冲突 10 UIPanGestureRecognizer *panGes = [tableView.superview.gestureRecognizers objectAtIndex...requireGestureRecognizerToFail:cell.rightSwipe]; 13 } 14 return cell; 15 } 至于如何给Cell设置左滑多菜单功能手势

    1.9K20

    【IOS开发进阶系列】手势专题

    1 touchesBegan手势         iPhone中处理触摸屏的操作,在3.2之前是主要使用的是由UIResponder而来的如下4种方式:     - (void)touchesBegan...手势识别UIGestureRecognizer类是个抽象类,下面的子类是具体的手势,开发这可以直接使用这些手势识别。...当创建手势时,指定一个回调方法,当手势开始,改变、或结束时,回调方法被调用。         添加到需要识别的View中。...,运行看效果,程序中的imageView放了一条蛇的图片,在模拟器上拖动是没问题的。...缩放和旋转有点问题,估计是因为在模拟器上的模拟的两个接触点距离在imageView的边界外了,所以操作无效果。建议在真机上运行这个手势。

    1.3K40

    浏览器中的手写数字识别

    不得不感概,当年匆忙设计出来,饱受批评的一门脚本语言,竟然生命力这么顽强。 闲话少说,下面就来看看在浏览器中训练模型是怎样的一种体验。...我之前写过一系列的《一步步提高手写数字的识别率(1)(2)(3)》,手写数字识别是一个非常好的入门项目,所以在这里我就以手写数字识别为例,说明在浏览器中如何训练模型。...这里就不从最简单的线性回归模型开始,而是直接选用卷积神经网络。 和python代码中训练模型的步骤一样,使用TensorFlow.js在浏览器中训练模型的步骤主要有4步: 加载数据。 定义模型结构。...训练模型并监控其训练时的表现 在浏览器中训练,也可以批量输入图像数据,可以指定batch size,epoch轮次。...另外,你也可以在浏览器中直接访问:http://ilego.club/ai/index.html ,直接体验浏览器中的机器学习。

    1.8K80

    iOS-控件响应用户控制事件之事件处理

    事件处理 响应者对象 在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件。...管理的事件队列中。...2> 如果当前这个view不是控制器的view,那么父控件就是上一个响应者 响应者链的事件传递过程 如果view的控制器存在,就传递给控制器;如果控制器不存在,则将其传递给它的父视图 在视图层次结构的最顶级视图...1.必须得自定义view 由于是在view内部的touches方法中监听触摸事件,因此默认情况下,无法让其他外界对象监听view的触摸事件 不容易区分用户的具体手势行为 UIGestureRecognizer...为了完成手势识别,借助于手势识别器----UIGestureRecognizer 利用UIGestureRecognizer,能轻松识别用户在某个view上面做的一些常见手势 UIGestureRecognizer

    1.4K70

    谷歌开源手势识别器,手机能用,运行流畅,还有现成的App,但是被我们玩坏了

    郭一璞 发自 凹非寺 量子位 报道 | 公众号 QbitAI 借助TensorFlow Lite和MediaPipe,谷歌刚刚开源了一款手势识别器,可以直接在手机上运行,实时跟踪,并且已经开源。...有App可玩 谷歌已经把这款手势识别器做成了一款名为“Hand Tracking GPU”的App,在安卓端有对应的apk安装包,下载到手机上,安装成功后,无需联网就可以直接用了。...另外,这个App只支持一只手的手势识别,如果你把两只手都放到摄像头前,它只能识别一只: ? 说好的石头剪刀布呢? 当然,想想办法还是能让它识别两只手的,比如这样: ?...三大模型 不过,被“忽悠瘸了”的锅,可不能让一个模型背,因为,这款应用的背后有3个模型。 ? BlazePalm 从整个图像中界定手部轮廓,找到手掌的位置,检测平均精度达到95.7%。...在训练过程中,研究人员们用到了将近30000张真实世界的标注过的手掌图片,来获取ground truth数据。 ? 之后,用混合训练的方式训练模型。 ?

    2K31
    领券