iOS边练边学--触摸事件以及能够拖拽的UIView的练习

一、用户在使用APP的过程中,会产生各种各样的事件。iOS中的事件可以分为3大类型:

二、响应者对象

  • 在iOS中只有继承了了UIResponder的对象才能接受并处理事件,这样的对象称之为“响应者对象”
  • UIApplication、UIViewController、UIView都继承自UIResponder,因此他们都是响应者对象,都能够接受并处理事件
  • UIResponder内部提供了以下方法来处理事件

三、练习中对UIView的触摸事件进行了熟悉

四、UITouch

  • 一根手指对应一个UITouch对象
  • UITouch作用:保存跟手指相关的信息,比如触摸的位置、时间、阶段
  • 注意:iPhone开发中,要避免使用双击事件!

五、UITouch的方法

六、事件的传递示例

七、UIView不能接收触摸事件的三种情况

八、根据UIView的触摸事件做的练习--能够拖拽的UIView

时间: 2024-10-18 05:00:33

iOS边练边学--触摸事件以及能够拖拽的UIView的练习的相关文章

iOS边练边学--CALayer,非根层隐式动画,钟表练习

一.CALayer UIView之所以能显示在屏幕上,完全是因为他内部的一个图层 在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个层 当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘制,并且会将所有内容绘制在自己的图层上,绘图完毕后,系统会将图层拷贝到屏幕上,于是就完成了UIView的显示 UIView本身不具备显示的功能,是他内部的层才有显示功能 二.CALayer的基本使用 三.关于CALa

[iOS UI进阶 - 3.0] 触摸事件的基本处理

A.需要掌握和练习的 1.介绍事件类型2.通过按钮的事件处理引出view的事件处理3.响应者对象 --> UIResponder --> UIView4.view的拖拽* 实现触摸方法,打印查看* 介绍touches和UIEvent参数* 扩展:点哪去哪5.涂鸦6.手势解锁7.事件的产生和传递8.响应者链条 9.手势 B.概念 1.iOS有3种主要事件 触摸事件 加速计事件 远程控制事件 2.响应者对象 在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事

[iOS UI进阶 - 3.1] 触摸事件的传递

A.事件的产生和传递 发生触摸事件后,系统会将该事件加入到一个由UIApplication管理的事件队列中 UIApplication会从事件队列中取出最前面的事件,并将事件分发下去以便处理,通常,先发送事件给应用程序的主窗口(keyWindow) 主窗口会在视图层次结构中找到一个最合适的视图来处理触摸事件,这也是整个事件处理过程的第一步 找到合适的视图控件后,就会调用视图控件的touches方法来作具体的事件处理touchesBegan-touchesMoved- touchedEnded-

手机端touch事件实现元素拖拽效果 2

经上次的手机端拖拽事件,再次经过完善修改,加入了元素不能拖出屏幕范围功能,并做了一个小的函数接口 ps:经落雨大神指点. 代码如下: var touchEvent = (function(){ var oDiv = document.getElementsByTagName('div')[0], //获取可拖动元素 oIpt = document.getElementsByTagName('input')[0], //记录拖动元素位置 oIpt1 = document.getElementsBy

JS——事件详情(拖拽案例:onmousedown、onmousemove、onmouseup方法)

实现拖拽案例 效果如下图所示: 代码如下图所示: 代码思路说明: 第23行代码:在div元素中触发onmousedown事件,实现鼠标在div按下,不提起功能 [区别于onclick,onclick:按下.提起事件,属于两个动作(即:onmousedown+onmouseup)] 第20-21行代码:声明变量,用于计算鼠标按下位置到div位置长度距离 (详细见下图解释分析) 第24-25行代码:设置鼠标按下位置到div位置长度距离(即:鼠标位置-div左边距到浏览器的长度距离) (详细见下图解释

iOS边练边学--应用数据存储的常用方式(plist,Preference,NSKeyedArchiver)其中的三种

iOS应用数据存储的常用方式: XML属性列表(plist)归档 Preference(偏好设置) NSKeyedArchiver归档(NSCoding) SQLite3--这里暂且不讲 Core Data--这里暂且不讲 一.应用沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒 应用沙盒的文件系统目录,如下图所示 二.应用沙盒结构分析 应用程序包:(上图中的Layer)包含了所有的资源文件和可执行文件 Do

iOS边练边学--多线程介绍、NSThread的简单实用、线程安全以及线程之间的通信

一.iOS中的多线程 多线程的原理(之前多线程这块没好好学,之前对多线程的理解也是错误的,这里更正,好好学习这块) iOS中多线程的实现方案有以下几种 二.NSThread线程类的简单实用(直接上代码) 三.多线程的安全隐患 资源共享 1块资源可能会被多个线程共享,也就是多个线程可能会访问同一块资源 比如多个线程访问同一个对象.同一个变量.同一个文件 当多个线程访问同一块资源时,很容易引发数据错乱和数据安全问题(存钱取钱的例子,多个售票员卖票的例子) 安全隐患解决的方法 --- 互斥锁(图解)

iOS边练边学--图片的拉伸

图片拉伸方法一: IOS 5.0以后才有的方法: 1 - (void)viewDidLoad { 2 [super viewDidLoad]; 3 UIImageView *imageView = [[UIImageView alloc] init]; 4 imageView.frame = CGRectMake(30, 30, 300, 300); 5 UIImage *image = [UIImage imageNamed:@"chat_send_press_pic"]; 6 //

iOS边练边学--父子控制器之自定义控制器的切换

一.如图所示的界面,按钮One.Two.Three分别对应三个控制器的view,点击实现切换.个人感觉父子控制器的重点在于,控制器的view们之间建立了父子关系,控制器不建立的话,发生在view上面的事件,对应的view可能接收不到,控制器们建立了父子关系后,可以将事件传递给相应的控制器. 练习代码如下: 1 #import "ViewController.h" 2 #import "OneTableViewController.h" 3 #import "