首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

    UIResponder大体有四类事件:触摸、加速计、远程控制、按压(iOS9.0以后出来的,3DTouch)。 ?...UIView继承自UIResponder,因此所有的控件都是响应者对象 UIWindow:是特殊的UIView,所以也是响应者对象 UIApplication,所以也是响应者对象 1....UIButton肯定是放在一个UIView上面,UIView也肯定是放在一个Controller里面。这几个都是响应者对象,总不能让大家一起给用户反馈吧。...要是什么事情都让UIApplication或者UIWindow干,还不让它两儿累死啊,那系统效率要低成神马样子。 最终找到这个干活的控件,我们学术上就叫做第一响应者对象。...UIGestureRecognizerState) { // 没有触摸事件发生,所有手势识别的默认状态 UIGestureRecognizerStatePossible, // 一个手势已经开始但尚未改变或者完成时

    2.8K40

    UI篇-自定义控件之基类UIControl

    UIControl的意义所在 UIControl的主要角色是定义一套接口和基础实现,为iOS的人机交互制定了一系列的标准, 为了当确定的事件发生的时候(比如点击了按钮)准备好动作消息(Action)...自定义控件可以怎样实现 继承自UIView,这是大多数开发者的做法。也能够实现需求,但是一个可交互控件,理应继承于UIControl而非UIView。...子类可能要重载这个方法来观察或者修改动作转发的行为。...在控件范围内按下并在控件外面拖动的事件 UIControlEventTouchDragEnter 从控件范围外拖动到控件范围内的事件 UIControlEventTouchDragExit 从控件范围外拖动到控件范围内的事件...1 << 2, // flag usable by app (see below) UIControlStateFocused NS_ENUM_AVAILABLE_IOS

    1.8K20

    iOS初来乍到,你如何开始第一个封装类?

    此博客为初级iOS而写,这里不讲难以理解的知识,就说说怎么样封装一个简单的控件。我记得在我开始自己第一个封装控件的时候,真的是一筹莫展,就像抱着一个西瓜不知道怎么下口。...那么,自然当滑动滑块或者点击左右按钮后,滑块应该是左右移动的,移动完成可能需要调用一个方法来做别的事情,移动的过程中可能还需要一个动画。 分析完成,我们需要想着如何构造这个代码。...这里外观上:底部view背景色、滑块背景色、左右两个标题;事件上:左右滑动或者点击,滑块移动到指定位置后调用的方法。...(为了简单我用三目运算)如果你喜欢阻尼、弹跳效果,可以自行参考UIView动画。 不要忘记我们还有一个拖动手势事件没有处理。...其实东西特别简单,只是希望给刚接触iOS编程的人看看吧,毕竟我刚开始时候没有人告诉我这样去做。

    1.5K40

    他们主动布局(autolayout)环境的图像编辑器

    我决定将我自己做的这个小APP的源代码发布给大家: 其出发点是和大家一起学习iOS开发。仅供学习參考之用。...能够对图片进行放缩和 拖动,已更改圆形裁剪框圈定的图片部分。...留意上图的动画,qq总是可以确保圆环全然被图片所覆盖,假设拖动 或者放缩使得图片以外的黑色区域进入了圆环。图片会自己主动弹回刚好可以全然覆盖 的状态。...看一下效果,达到了预期: 图8.转屏效果 图9.拖动和缩放 三、总结 将图片载入进scrollview,对其放缩、拖动然后裁剪当中一部分是图片编辑器 的主要功能,看似简单的功能需求...利用好UIView的drawRect方法。结合使用scrollview的特性方能得以 实现。

    1.1K10

    AVFoundation | 封装一个好用的视频播放器

    一:简介 AVFoundation是苹果在iOS和OS X系统中用于处理基于时间的媒体数据的Objective-C框架. 供使用者来开发媒体类型的应用程序。 ? 上图是iOS系统下媒体应用的结构层....如果好用或者对你有所帮助,不要忘了关注点个赞呦!!!...二:实现思路分析 视频控制界面实现 用于视频显示的View创建 视频数据下载器FBYVideoDownload创建 播放、暂停、横竖屏操作方法实现 监听播放进度 控制存储缓冲范围 拖动滑块,控制快进快退...用于视频显示的View创建 - (UIView *)videoShowView{ if (!...拖动滑块,控制快进快退 //拖动滑块[_videoPlayControl setSliderTouchEnd_block:^(CGFloat time) { [weakSelf seekToTimePlay

    1.4K10

    iOS 全屏侧滑手势UIScrollViewUISlider间滑动手势冲突

    俺直接在之前的示例Demo上演示,简书地址:iOS 自定义转场动画 ,Github地址 :WSLTransferAnimation 二、问题展示 现象 1、UIScrollView当前在第一页即contentOffset.x...手势冲突.gif 三、分析解决问题 这些问题很显然,肯定跟iOS事件的传递和响应链机制有关系,不了解的可以看看这篇文章 史上最详细的iOS之事件的传递和响应机制-原理篇。...//处理UISlider的滑动与UIScrollView的滑动事件冲突 - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {.../* 直接拖动UISlider,此时touch时间在150ms以内,UIScrollView会认为是拖动自己,从而拦截了event,导致UISlider接受不到滑动的event。...*/ UIView *view = [super hitTest:point withEvent:event]; if([view isKindOfClass:[UISlider

    4.5K20

    iOS-视频播放器的简单封装

    iOS-视频播放器的简单封装 封装视频播放器,首先需要了解视频播放器的实现,iOS9之前可以使用MediaPlayer来进行视频的播放,iOS9之后系统推荐使用AVFoundation框架实现视频的播放...视频播放器布局 首先使用xib创建CLAVPlayerView继承UIView用来承载播放器,这样我们在外部使用的时候,直接在控制器View或者Cell上添加CLAVPlayerView即可,至于播放器播放或者暂停等操作交给...self.isShowToolView; [UIView animateWithDuration:0.5 animations:^{ self.toolView.alpha =...根据Slider滑动拖动滑动位置播放视频需要监听Slider的按下,拖动(数据改变),松开三个阶段。...按下时移除定时器,拖动时根据拖动的值即时的计算当前播放时间并显示在label上,松开时计算当前播放时间,并跳转到当前播放时间进行播放。

    2.6K110

    【 iOS 应用开发 】 UIKit 控件 ( 代码生成控件 | UIView 属性方法 | Storyboard | Bundle | Property List | 动画 | 图片内存优化 )

    应用启动步骤简介 ( 1 ) iOS 应用启动步骤 五....控件 : 1.创建 UIView 控件 : 使用 UIView 的 alloc init 方法 , 创建 UIView 控件 ; //1....代码逻辑 ( ① 边界处理 | ② 按钮处理 | ③ UILabel 文字切换 | ④ UIImageView 图片切换 ) 代码逻辑 : 1.索引边界处理 : 索引范围 1 ~ 5 , 不能 小于 1 或者...应用启动步骤简介 ( 1 ) iOS 应用启动步骤 iOS 应用启动步骤 : 1.程序入口 main 函数 : main () 函数 在 Xcode 中 代码 路径 下的 Supporting Files...NSBundle mainBundle]; 3.获取 Bundle 下的 文件路径 : 可以通过 pathForResource 方法 获取 某文件的 路径 , ① 传入 文件名 和 后缀 两个参数 , ② 或者

    5.2K41

    iOS原生地图开发指南 原

    iOS原生地图开发详解 在上一篇博客中:http://my.oschina.net/u/2340880/blog/414760。...对iOS中的定位服务进行了详细的介绍与参数说明,在开发中,地位服务往往与地图框架结合使用,这篇博客主要对iOS官方的地图框架MapKit.framework进行介绍。...一、初始化地图视图与相关属性方法介绍 1、初始化地图视图 地图视图的展示依赖于MKMapView这个类,这个类继承于UIView,因此和其他View的使用方法类似。...    MKAnnotationViewDragStateDragging,      // 正在拖动     MKAnnotationViewDragStateCanceling,     // 取消拖动...- (void)mapView:(MKMapView *)mapView didAddOverlayViews:(NSArray *)overlayViews; 添加完成覆盖物数组执行的方法 备注:在iOS9

    1.6K30

    iOS 面试策略之系统框架-UIKit

    本章节主要从视图、网络、设计模式几个方面考察开发者的开发水准,这是任何一个合格的 iOS 开发者都应该具备的基本素养。 [1240] iOS 开发中最重要的 API 就是 UIKit。...对于 iOS 11 中最新的 drag and drop 和安全区域亦有涉及。 UI 控件和基本布局 1.要在 UIView 上定义一个 Label有 哪几种方式?...如果你正在跳槽或者正准备跳槽不妨动动小手,添加一下咱们的交流群931542608来获取一份详细的大厂面试资料为你的跳槽多添一份保障。动画 8.iOS 中实现动画的方式有几种?...UIViewPropertyAnimator 是 iOS 10 引进的处理交互式动画的接口。它也是基于 UIView 实现,可以实现所有的 UIView Animation 效果。...实现完该方法后,图片就可以从 dragImageView 里拖动出来了。

    2K20

    IOS触摸事件分发机制详解

    怎么在一个页面处理手绘、表情拖动放缩、文本编辑三种消息 阅读本文,你会明白两个问题:IOS如何找到响应者、响应者是如何做出响应,明白这两个问题你就能解决类似上述的疑难杂症。...Hit-Testing 屏幕上有很多UIView,你点击一下屏幕,IOS是怎么知道你点击的是哪个UIView呢?...具体的检测工作是通过UIView中两个方法来完成的 - (nullable UIView *)hitTest:(CGPoint)point withEvent:(nullable UIEvent *)event...)复制、粘贴、剪切等 文本控件编辑事件(Text editing),UITextView、UITextfiled等 传递路径 如果初始化对象(initial object 即hit-test view或者...这个操作继续直到一个响应者处理该事件或者没有响应者了。 响应链序列在iOS确定一个事件并将它传递给initial object(通常是view)时开始。

    4K90

    iOS - 添加一个全局悬浮按钮

    背景介绍 :在普通的iOS开发组中,一般测试机都不止一台,但是我们在开发的时候,不可能每台测试机时刻保持最新的代码,这就出现了一个问题,当测试测出问题的时候,(或者产品突然拿去点点看的时候出了问题)如果不知道当前的版本...需求设计图.png 思路: 由于要全局显示,所以必须加在最上层(window层) 由于需求图中有文字和背景图片,优先考虑UIButton(当然,如果有勇士非要用UIView,里面放imageView 和...label也o98k) 由于此图片不是半透明,会挡住后面的内容,所以这个标签必须可以拖动 - 考虑添加拖拽手势 本质上可以理解为,创建一个UIButton,为其添加拖拽手势,然后将其添加到UIWindow...image.png 知识3:控件的移动 - 本质上:坐标 ++ //拖动改变控件的水平方向x值 - (CGRect)changeXWithFrame:(CGRect)originalFrame point...isOver = YES; } if (isOver) { //如果越界-跑回来 [UIView

    3.1K40
    领券