一.事件分类 对于IOS设备用户来说,他们操作设备的方式主要有三种:触摸屏幕.晃动设备.通过遥控设施控制设备.对应的事件类型有以下三种: 1.触屏事件(Touch Event) 2.运动事件(Motion Event) 3.远端控制事件(Remote-Control Event) 今天以触屏事件(Touch Event)为例,来说明在Cocoa Touch框架中,事件的处理流程.首先不得不先介绍响应者链这个概念: 二.响应者链(Responder Chain) 先来说说响应者对象(Respond…
这篇文章想跟大家分享的主旨是iOS捕获用户事件的各种情况,以及内部封装的一些特殊事件. 我们先从UIButton谈起,UIButton大家使用的太多了,他特殊的地方就在于其内置的普通Default/高亮Highlighted/选择Selected/可用Enable的几个状态(UIControlState).其次就是SDK内部已经为我们封装了以下用户事件: 最常用的莫过于Touch Up Inside这个事件了,他代表:  用户在按钮区域内按下,并且也在按钮区域内松开. 关键点:按下并且松开 才能…
这篇文章想跟大家分享的主旨是iOS捕获用户事件的各种情况,以及内部封装的一些特殊事件. 我们先从UIButton谈起,UIButton大家使用的太多了,他特殊的地方就在于其内置的普通Default/高亮Highlighted/选择Selected/可用Enable的几个状态(UIControlState).其次就是SDK内部已经为我们封装了以下用户事件: 最常用的莫过于Touch Up Inside这个事件了,他代表:  用户在按钮区域内按下,并且也在按钮区域内松开. 关键点:按下并且松开 才能…
当发生事件响应的时候,必须知道由谁来响应事件.在iOS中,由响应链来对事件进行响应,所有的事件响应的类都是继承于UIResponder的子类,响应链是一个由不同对象组成的层次结构,其中每个对象将依次获得响应事件消息的机会 发生触摸事件后,系统将事件加入到由UIApplication管理的事件 队列  好处:遵循第一响应原则,总会优先处理队列中排在最前面的事件.(栈是先进后出 不符合业务逻辑) (1)事件传递(链) 1.传递链中时没有controller的,因为controller本身不具有大小的…
1.简介  测试代码库:https://github.com/xufeng79x/EventHandler 响应者链是系统寻找事件相应者的一个路径,他是同touch事件的Hit-testing过程具有同等地位的事件寻主过程. 此路径开始于firstResponder结束于单例application.事件首先会让firstResponder对象去处理,如果他无法处理则会向其nextResponder对象转发事件 当所有对象都无法处理事件后将最后转发到application处并最终忽略该事件. 2.…
一.事件分类 对于IOS设备用户来说,他们操作设备的方式主要有三种:触摸屏幕.晃动设备.通过遥控设施控制设备.对应的事件类型有以下三种: 1.触屏事件(Touch Event) 2.运动事件(Motion Event) 3.远端控制事件(Remote-Control Event) 今天以触屏事件(Touch Event)为例,来说明在Cocoa Touch框架中,事件的处理流程.首先不得不先介绍响应者链这个概念: 二.响应者链(Responder Chain) 先来说说响应者对象(Respond…
原文来自:http://www.cnblogs.com/zhw511006/p/3517248.html 响应者链(Responder Chain) 通常,一个iOS应用中,在一块屏幕上通常有很多的UI控件,也就是有很多的View,那么当一个事件发生时,如何来确定是哪个View响应了这个事件呢,接下来我们就一起来看看. 寻找hit-test view 什么是hit-test view呢?简单来说就是你触发事件所在的那个View,寻找hit-test view的过程就叫做Hit-Testing.那…
iOS设备在平均线上硬件比andorid设备良好许多,尤其是内存和CPU,所以iOS应用里面有大量动画交互效果的交互,这是每个用户都喜悦的,如果每个操作对应界面来讲都是直接变化,那变得十分地生硬. 你是喜欢看幻灯片?还是看高清电影?我想如果能让用户选择的话,这个问题简直不必问,如果你去下载一个XXX的高清五码种子,结果发现下载下来是个PPT,你会如何想. 虽然幻灯片里面也有动画效果,但是作为举例来讲我们只当做他是一张张直接切换,而电影是连续的,有视觉代入感的,有情景的,有很强的上下文的! 如果我…
在IOS开发中,有时候会遇到如下情况:在页面1上有一个RedView,在RedView上有一个GreenView,在GreenView上有一个button,这些view的创建代码如下: 1.AppDelegate.m // // AppDelegate.m // 响应者链 // // Created by mac on 16/5/10. // Copyright © 2016年 mzw. All rights reserved. // #import "AppDelegate.h" #…
响应者链表示一系列的响应者对象.事件被交由第一个响应者对象处理,如果第一个响应者不处理,事件就沿着响应者链向上传递,交由下一个响应者(Next responder). View->ViewController->window->application->丢弃事件 如果有一个地方响应了,则不再往下传递. 可以了解下手势或触摸事件.…
一.事件响应者链 事件传递和事件响应链 区别 事件的传递和响应的区别: 事件的传递是从上到下(父控件到子控件),事件的响应是从下到上(顺着响应者链条向上传递:子控件到父控件. 引出 当我们手指触摸屏幕的时候,iOS系统是怎么找到对应的图层,并响应手势的呢? 事件的产生 发生触摸事件后,系统会将该事件加入到一个由UIApplication管理的事件队列中,为什么是队列而不是栈?因为队列的特点是先进先出,先产生的事件先处理才符合常理,所以把事件添加到队列. UIApplication会从事件队列中取…
正文 以触摸事件为例,说一下响应者链 当发生触摸事件后,Runloop监听到事件,会将其事件打包成一个UIEvent事件,并放入当前活动UIApplication的事件队列中,再会传给UIWindow,UIWindow会用hitTest:withEvent方法裙子此次事件操作所在的视图,以这个的形式找到第一响应者,若第一响应者不能处理该事件.则向父视图传递,知道UIApplication,若UIApplication也不能相应,则该事件被丢弃 UIWindow会调用hitTest:withEve…
今天给大家带来的一篇手绘风格博文<内存管理一点也不神秘> 每当我们程序执行alloc/new/copy/mutableCopy的时候,当我们执行release的时候,当我们执行retain的时候,当我们执行autorelease的时候,我们的内存到底是怎样在运转? 本文讲以手绘的风格像大家展示内存运作的细节内幕. 在研究引用计数之前,我们先研究一下对于单一持有者而言的引用计数管理: 好的,现在我们假想0xA106后面的这段连续内存是一间写字楼办公室啦,那么有A.B.C3个人会使用这个办公室,那…
Cocoa Touch事件处理流程--响应者链 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/9264335 转载请注明出处 如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号wangzzstrive来支持我,谢谢!   一.事件分类 对于IOS设备用户来说,他们操作设备的方式主要有三种:触摸屏幕.晃动设备.通过遥控设施控制设备.对应的事件类型有以下三种: 1.触屏事件(Touch Event) 2.运动事件(M…
首先,当发生事件响应时,必须知道由谁来响应事件.在IOS中,由响应者链来对事件进行响应,所有事件响应的类都是UIResponder的子类,响应者链是一个由不同对象组成的层次结构,其中的每个对象将依次获得响应事件消息的机会.当发生事件时,事件首先被发送给第一响应者,第一响应者往往是事件发生的视图,也就是用户触摸屏幕的地方.事件将沿着响应者链一直向下传递,直到被接受并做出处理.一般来说,第一响应者是个视图对象或者其子类对象,当其被触摸后事件被交由它处理,如果它不处理,事件就会被传递给它的视图控制器对…
概念: 响应者 : 对用户交互动作事件进行响应的对象.响应者链:成为处理事件的响应者的先后顺序链. 1.Hit-Test 机制 当用户触摸(Touch)屏幕进行交互时,系统首先要找到响应者(Responder).系统检测到手指触摸(Touch)操作时,将Touch 以UIEvent的方式加入UIApplication事件队列中.UIApplication从事件队列中取出最新的触摸事件进行分发传递到UIWindow进行处理.UIWindow 会通过hitTest:withEvent:方法寻找触碰点…
##DAY4  事件的基本概念.触摸的基本概念.响应者链.手势 #pragma mark ———————事件的基本概念 ——————————— 事件的基本概念: 1)事件是当用户的手指触击屏幕及在屏幕上移动时,系统不断发送给应用程序的对象. 2)系统将事件按照特定的路径传递给可以对其进行处理的对象. 3)在iOS中,一个UITouch对象表示一个触摸,一个UIEvent对象表示一个事件.事件对象中包含与当前多点触摸序列相对应的所有触摸对象,还可以提供与特定视图或窗口相关联的触摸对象. 事件类型:…
该文章翻译自:Understanding cocoa and cocoa touch responder chain. 转载注明出处:http://www.cnblogs.com/zhanggui/p/7157954.html 不管是在cocoa中还是在cocoa touch中,所有的Applications都有一个与之关联的事件队列,这个队列里面是许多不同来源的事件.为了处理事件流,每个application都持有一个run loop,此run loop将会以先进先出(first in fir…
原创文章,欢迎转载.转载请注明:关东升的博客 应用与用户进行交互,依赖于各种各样的事件.事件响应者对象是可以响应事件并对其进行处理的对象,响应者链是由一系列链接在一起的响应者组成的.响应者链在事件处理中是非常重要的,响应者链可以把用户事件路由给正确的对象. 响应者对象与响应链 UIResponder是所有响应者对象的基类,它不仅为事件处理,而且也为常见的响应者行为定义编程接口.UIApplication.UIView(及其子类,包括UIWindow)和UIViewController(及其子类)…
响应者链  概念: 每一个应用有一个响应者链,我们的视图结构是一个N叉树(一个视图可以有多个子视图,一个子视图同一时刻只有一个父视图),而每一个继承UIResponder的对象都可以在这个N叉树中扮演一个节点.当叶节点成为最高响应者的时候,从这个叶节点开始往其父节点开始追朔出一条链,那么对于这一个叶节点来讲,这一条链就是当前的响应者链.响应者链将系统捕获到的UIEvent与UITouch从叶节点开始层层向下分发,期间可以选择停止分发,也可以选择继续向下分发. 发生触摸事件后,系统会将该事件加入到…
app点击一个按钮跳转到另外一个控制器非常常用,但是如果是点击的是UIImageView如何通过模态视图进入另外一个控制器呢?万一这个UIImageView在自定义的cell或者view里面,那该如何做呢? 首先要先知道的是时间响应者链, 响应者链处理原则 1. 点击检测视图或者第一响应者传递事件或动作消息给它的视图控制器(如果它有的话):如果没有一个视图控制器,就传递给它的父视图. 2. 如果一个视图或者它的视图控制器不能处理这个事件或动作消息,它将传递给该视图的父视图. 3. 在这个视图层次…
Android 与 iOS 设备之间的争斗从未停止,毕竟一切高科技产品的理念和实际表现方式都不相同.就拿 Android 来说,很多功能令用户并 不太开心,甚至是令人愤怒,下面让我们来简单的盘点 10 个 iOS 比 Android 优秀的特征.当然,这并不意味 着 Android 比 iOS 差,因为每天让库克最为头痛的事情,就是每天都会有用户转投 Android,反之亦然,因为我们还会盘 点 Android 比 iOS 更好的 10 个特征. 1.设计不一致 让 我们面对现实,即使谷歌公布了…
关于响应者链部分的基础内容 参考http://www.cnblogs.com/wendingding/p/3795171.html 这里我要说明的是 关于- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event; 这个方法的使用 响应者链中的响应过程如下: UIApplication -> Window ->递归找到处理事件的控件->控件调用touches方法 -> 判断是否实现了touch 方法 ->如果没有…
本文是<iOS Wow Factor:Apps and UX Design Techniques for iPhone and iPad>第二章译文精选的第二部分,其余章节将陆续放出.上一篇:Wow体验 - 第二章 - iOS用户体验解析(1) 关于本套译文分享的详情及目录结构,请参考iOS Wow体验 - 译文分享说明. 全文由C7210自发翻译(编译),并首发于Beforweb.com,如需转载,请注明译者及出处信息.英文原书版权由Apress所有,中文引进版的版权由相关出版社所有. 在本…
本文是<iOS Wow Factor:Apps and UX Design Techniques for iPhone and iPad>第二章译文精选的第一部分,其余章节将陆续放出.上一篇:iOS Wow体验 - 第一章 - iOS人机界面设计规范纵览 关于本套译文分享的详情及目录结构,请参考iOS Wow体验 - 译文分享说明. 全文由C7210自发翻译(编译),并首发于Beforweb.com,如需转载,请注明译者及出处信息.英文原书版权由Apress所有,中文引进版的版权由相关出版社所…
如果转载此文,请注明出处:http://blog.csdn.net/paulery2012/article/details/25157347,谢谢! 前言: 本文是在阅读<ios用户体验>的过程中,记录的总结和个人的感受思考.不免有错误之处,恳请读者指正,在下面留言即可. 第一章:ios人机界面指南概述 1.智能手机的特点:大尺寸.高分辨率.强大的计算能力 2.签名交互:滚动轮.导航键.按键和硬键盘.软键盘.触控笔.触屏,输入特性又被称为“签名交互”,用户可以通过输入方式的组合方式别是设备品牌…
在开发中,我们经常看到有按钮等的点击,会出现响应事件.按钮->view->ViewController->UIWindow->UIApplication,这就形成了一个响应链.本篇将讲述响应链的具体底层实现,大约花费10-15分钟左右,欢迎点评!!! 一.知识 继承UIResponder的对象,我们称之为响应者对象.我们常用到的UIApplication.UIWindow.UIViewController以及所有继承UIView的UIKit都会根继承于UIResponder. UI…
iOS设计模式 - 责任链 原理图 说明 在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链.请求在这个链上传递,直到链上的某一个对象决定处理此请求.发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任. 源码 https://github.com/YouXianMing/iOS-Design-Patterns // // ChainOfResponsibilityProtocol.h // ChainOf…
iOS用户体验之-导航之道 用户不会意识到有导航指向的存在除非他遇到非预期的效果. 能够说导航时逻辑跳转的节点.所以导航对用户体验是至关重要的. iOS中有三种类型的导航.每一种适合不同类型的app. 1.层次类型的导航 在分层app中.一个选择相应一个页面,当这个页面没有分支为止,要想到达还有一个分支,你必须返回又一次的选择,iOS中 的setting和Mail就是非常好的样例. 2.平铺类型的导航 平铺类型的就能够看作是一个字典类型.通过键就跳到值的位置.如电话本,点击姓就跳到姓的组去了.…
假设转载此文.请注明出处:http://blog.csdn.net/paulery2012/article/details/25157347,谢谢. 前言: 本文是在阅读<ios用户体验>的过程中,记录的总结和个人的感受思考.不免有错误之处,恳请读者指正,在以下留言就可以. 第一章:ios人机界面指南概述 1.智能手机的特点:大尺寸.高分辨率.强大的计算能力 2.签名交互:滚动轮.导航键.按键和硬键盘.软键盘.触控笔.触屏.输入特性又被称为"签名交互",用户能够通过输入方式…