阅读器的排版基于CoreText,通过章节文本数据SSChapterData和用户设置SSConfigData,可以生成带格式的富文本NSAttributeString;通过CoreText将富文本转化成多个...3、翻页数据异常 UIPageViewController在翻页的时候会请求下一页数据,我们通过UIViewController封装好对应的数据和视图,直接回传一个VC; 但是当用户频繁滑动并在滑动动画未完成就触发点击进入下一页的逻辑时...对翻页逻辑进行整理,有滑动和点击两种方式。点击的时候会同步更新当前数据源为下一页,所以即使点击很快,也不会出现数据源异常的情况。 问题在于滑动切换时,何时把数据源更新为下一页?...BackVC,否则出现数据展示异常; 通过setViewControllers方法手动切换界面时,如果设置animated为YES,则必须传入两个vc否则会出现Crash。...5、手势冲突 UIPageViewController是一个容器,上面会放置真正用于显示的VC,需要注意VC不能存在全屏的view,否则手势无法传到UIPageViewController,会出现无法左右滑动的情况
前言 前文介绍的是小说阅读器的设计和实现,本文作为补充对多种翻页模式做详细剖析。 正文 常见的阅读器翻页模式包括:平移、仿真、滑页和上下: 平移:左右滑动; ?...对前面两种翻页模式进行分析,我们可以发现一些共性,比如说以页(VC)为单位、实时获取界面VC和页面之间有先后顺序等。...的移动; 2、touchEnd之后,根据pan手势的移动速度和原来的滑动速度,计算得到滑动的新初始速度; 3、touchBegin开始,讲当前速度重置为0; 上述的过程2的处理非常复杂,需要考虑原来的滑动速度...通常iOS实现滑动会有两大选择:UIScrollView和UITableView;(UICollectionView和UITableView类似) UIScrollView存在一个较大的局限:上面的视图资源无法回收利用...,如何避免触发再次获取nextVC?
1.组件介绍 Page是企鹅FM研发的分页组件,包括支持分页非交互切换(通过方法调用导航切换)和交互切换(屏幕的手势滑动),多个分页Controller和View的管理。...1.1需求背景 为什么弃用UIPageViewController,首先介绍一下UIPageViewController,这是系统为开发者定制的分页组件,提供了两种分页切换的效果,一是滑动 二是翻页。...参照下面的例图,我有一个tab下面有小黄条,跟着手势横向滑动的同时也横向滑动,这里系统的UIPageViewController无法支持。...交互切换和非交互切换 2.4 性能问题扩展 以下通过Iphone5 模拟器 10.3系统,与UIPageViewController做了性能上的对比。 ?...)以保证内存占用较小,所以图标指标先才会频繁的波动,与UIPageViewController作对比,Page组件用空间换时间的策略避免页面卡顿。
哪里有超详细mac触控板新手教程,入手了第一台 Mac,先来熟悉几个简单直观的触控板手势吧。视频早就准备好了,跟着一起上手比划,探索你的 Mac。...图文教程:点按操作1、点按一下,选中文件2、点按两下,打开文件3、两指一起点按,选取更多操作4、用力点按,预览文件两指操作1、两指上下滚动,浏览页面2、两指左右轻扫,切换页面3、两指捏合,放大或缩小三指操作在某些版本的...macos 中,这个手势使用的是四根手指,而不是三根。...1、三指向上轻扫,进入调度中心2、三指向左轻扫,切换桌面空间四指操作1、四指向内捏拢,打开启动台2、四指向外张开,显示桌面自定义手势打开,系统设置-触控板以上就是超详细mac触控板新手教程,苹果电脑触摸板使用图解加视频教程的全部内容
一、无障碍-地图缩放一指掌握 缩放地图是我们在使用地图的时候经常会用到的操作。对于视障人士来说,使用该功能的难点在于无法辨别目前地图处于哪个级别。...我们的地图SDK允许用户使用单根手指上下轻扫进行地图的缩放操作(向上轻扫为放大,向下轻扫为缩小),同时语音播报当前地图的级别。...腾讯位置服务在最新版本的地图SDK里适配响应了系统原生的无障碍功能,用户可以通过手势操作,让手机识别并读出地图中地点、道路等关键POI信息,帮助视障用户更加顺畅的使用地图功能。...具体操作层面,为了避免和地图缩放的手势混淆,用户需要首先使用iOS自带的转子功能将模式切换到“POI”模式,然后就可以使用单根手指在手机屏幕上下左右轻扫,从而切换不同的POI,被选中的POI就会被读出来...视障用户只需要在手机屏幕使用三指轻扫,地图视野就会随着手势的方向被拖动改变;同时,手机还会自动播报当前视野的中心点,帮助视障用户了解当前地图视野的具体位置,准确锁定用户期望的地图视野。
(长按) UISwipeGestureRecognizer(轻扫手势) UIRotationGestureRecognizer(旋转手势) UIPanGestureRecognizer(拖拽手势)...默认是NO,这种情况下当发生一个触摸时,手势识别器先捕捉到到触摸,然后发给触摸到的控件,两者各自做出响应。...:(nullable SEL)action; 4、指定一个手势需要另一个手势执行失败才会执行,同时触发多个手势使用其中一个手势的解决办法 有时手势是相关联的,如单机和双击,点击和长按,点下去瞬间可能只会识别到单击无法识别其他...[self.imgView addGestureRecognizer:longPress]; ---- 七、UISwipeGestureRecognizer(轻扫手势) 1、最少触摸手指个数,默认为1...@property(nonatomic) NSUInteger numberOfTouchesRequired; 2、设置轻扫手势支持的方向,默认为向右滑 @property(nonatomic) UISwipeGestureRecognizerDirection
•拖拽(DragGesture)SwiftUI 将 Pan 和 Swipe 合二为一,位置变化时,提供拖动数据。•缩放(MagnificationGesture)两指缩放。...•旋转(RotationGesture)两指旋转。 点击、长按、拖拽仅支持单指。SwiftUI 没有提供手指数设定功能。...•simltaneously(同时识别)将一个手势与另一个手势相结合,创建一个同时识别两个手势的新手势。例如将缩放手势与旋转手势组合,实现同时对图片进行缩放和旋转。...•sequenced(序列识别)将两个手势连接起来,只有在第一个手势成功后,才会执行第二个手势。譬如,将长按和拖拽连接起来,实现只有当按压满足一定时间后才允许拖拽。...示例一:轻扫 1.1 目标 创建一个轻扫(Swipe)手势,着重演示如何创建符合 Gesture 协议的结构体,并对手势数据进行转换。
不过用storyboard可以减少我们的工作量,这两个要配合着使用才能大大的提高我们的开发效率。...(SwipeGestureRecognizer) 在初始化轻扫手势的时候得指定轻扫的方向,上下左右。...如果要要添加多个轻扫方向,就得添加多个轻扫手势,不过回调的是同一个方法。 ...添加轻扫手势,一个向左一个向右,代码如下: 1 //添加轻扫手势 2 UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer...(通过translationInView获取移动的点,和TouchesMoved方法类似) 1 //拖动手势 2 -(void) panGesture:(id)sender 3 { 4 UIPanGestureRecognizer
手势的使用 4.1 长按手势 长按手势一定要判断状态,否则方法会在手势开始和结束时分别调用!方法会被调用两次!...判断手势的状态,长按手势一定要判断状态,否则方法会在手势开始和结束时分别调用!...如果要监听多个轻扫方向,需要添加多个轻扫手势 轻扫手势默认支持向右的扫动方向 因为轻扫手势要求用户比较放松的扫动,因此最好不要将此手势添加到某一个视图上,会局限用户的操作 - (void)addSwipeGesture...{ // 如果要监听多个轻扫方向,需要添加多个轻扫手势 // 轻扫手势默认支持向右的扫动方向 //创建轻扫手势识别并添加监听事件(默认是向右扫动) UISwipeGestureRecognizer...向上轻扫 UISwipeGestureRecognizerDirectionDown 向下轻扫 */ // 因为轻扫手势要求用户比较放松的扫动,
Multitouch mac版是一款好用的触控板软件位于菜单栏,可以让您将自定义动作绑定到特定的魔术触控板或魔术鼠标手势。例如,三指点击可以执行粘贴。...通过执行键盘快捷键,控制浏览器的选项卡,执行鼠标中键单击等等来改进您的工作流程。mac手势增强软件手指轻点、轻扫等就能快速进行操作,使用非常便捷。...id=MjU2NjEmXyYyNy4xODcuMjI1LjIxMA%3D%3D功能介绍随着越来越多的手势和行动列表免费更新。没有用户数据从应用程序收集。不需要辅助功能即可运行。
它通过简单替换 Item 的根布局即可实现侧滑效果,而不需要对 RecyclerView 或 ListView 进行额外的侵入式改造。...支持多指滑动屏蔽,避免多个菜单同时展开。 提供 iOS 风格的“阻塞式交互”与 Android 风格的“非阻塞式交互”。 使用步骤 1....SwipeDelMenuLayout 会自动管理滑动逻辑和手势冲突。...属性动画与平滑滚动 提供了属性动画(平滑滚动)和 Scroller(精确滑动)两种实现方式,开发者可以根据需求切换动画效果。...事件分发与手势冲突处理 自定义 ViewGroup 内部对 onInterceptTouchEvent 和 onTouchEvent 进行了细致的处理,屏蔽了多指滑动冲突,保证滑动操作的流畅性和唯一性
缩放和旋转有点问题,估计是因为在模拟器上的模拟的两个接触点距离在imageView的边界外了,所以操作无效果。建议在真机上运行这个手势。 ...代码解析: 先获取起始坐标:curTickleStart 通过和ticklePoint的x值对比,得出当前的放下是向左还是向右。... 旋转手势 UISwipeGestureRecognizer 轻扫手势 UIPanGestureRecognizer 拖拽手势 UILongPressGestrueRecognizer 长按手势...UISwipGestureRecognizer 轻扫手势,一个手势只能指定一个方向,如果需要指定多个方向需要多个手势 属性: numberOfTouchesRequired: 手指个数 direction...:手势方向,如UISwipeGestureRecognizerDirectionRight向右 UIPanGestureRecognizer: 拖拽手势,相比轻扫手势,手指与屏幕的交互时间更长。
自上次参加完回音分享会后,我下定决心要洗心革面乖乖打基础,于是开启了这个part,争取两个月不间断更新,写完Material Design与iOS中的组件(顺便学学英语),以便今后在使用的时候完全不虚...随着人们轻扫,轻弹,拖动,点按和捏动,scroll view会跟随手势,以自然的方式展示或缩放内容。...如果显示scroll view时显示页面控件,请禁用同一轴上的scrolling indicator以避免混淆。...·一般来说,一次显示一个scroll view 滚动时人们经常做出大滑动手势,并且很难避免与同一屏幕上的邻近scroll view进行交互。...如果您需要在一个屏幕上放置两个scroll view,请考虑允许它们沿不同方向滚动,这样一个手势就不太可能影响两个视图。
适用于 Windows 10 的触摸板手势 高级用户!在 Windows 10 笔记本电脑的触摸板上试用这些手势: 选择项目:点击触摸板。 滚动:将两个手指放在触摸板上,然后以水平或垂直方向滑动。...放大或缩小:将两个手指放在触摸板上,然后收缩或拉伸。 显示更多命令(类似于右键单击):使用两根手指点击触摸板,或按右下角。 查看所有打开的窗口:将三根手指放在触摸板上,然后朝外轻扫。...显示桌面:将三根手指放在触摸板上,然后朝里轻扫。 在打开的窗口之间切换:将三根手指放在触摸板上,然后向右或向左轻扫。 打开 Cortana:用三根手指点击触摸板。...切换虚拟桌面:将四根手指放在触摸板上,然后向右或向左轻扫。 部分手势仅适用于精确式触摸板,因此当你无法使用某个手势时不必过于担心。...开始-> 控制面板-> 程序和功能点击左边菜单中的‘打开和关闭窗口功能’链接。
Split Views Split View管理两个并排的内容窗格的呈现,主窗格中内容保持不变,辅助窗格中包含相关信息。 ...每个窗格可以包含各种元素,包括 navigation bars,toolbars,tab bars,tables,collections,images,maps 和自定义视图。...屏幕也可以均分为两部分。根据您的内容选择合适的分隔方式,并确保窗格不会显得不平衡。避免创建比主窗格更窄的辅助窗格。...·通常,将导航限制在 split view 的一侧 将导航放置在 split view 的两个窗格中使得人们难以找到方向,也难以辨别两个窗格之间的关系。...同时,让用户可以从屏幕的侧面轻扫访问主窗格,除非app需要使用轻扫手势来执行其他功能。
Web APP Web App 指采用Html5语言写出的App,不需要下载安装。类似于现在所说的轻应用。生存在浏览器中的应用,基本上可以说是触屏版的网页应用。...不同的浏览器自身的属性不尽相同,如:浏览器自带的手势,页面切换方式,链接跳转方式,版本兼容问题等等。 例如下图:UC 浏览器和百度浏览器自身支持手势切换页面。手指从左侧滑动页面,返回至上一级。...百度手机助手H5页面,顶部Banner支持手势左右滑动切换。这一操作与浏览器自身手势是冲突的。 再如,基于浏览器的Web APP在打开新的模块中的页面时,大多会新开窗口来展现。...因此,Web App基于浏览器的特性,从设计角度应该遵循以下了两点: 少用手势,避免与浏览器手势冲突。 减少页面跳转次数,尽量在当前页面显示。 3....少用 少用手势,避免与浏览器手势冲突 少用弹窗 3. 减少 减少页面内容 减少控件数量 减少页面跳转次数,尽量在当前页面显示 4. 增强 增强Loading时的趣味性 增强页面主次关系 增强控件复用性
回顾 在 iOS - 实现UINavigation全屏滑�动返回(一) 中我们实现了滑动返回的功能,但不是全屏滑动返回,得在左侧边缘轻扫才能滑动返回~UINavigationController自带的只能在边缘轻扫才能滑动返回...那我们就可以用OC强大的杀手锏KVC来得到这个属性,但是前提是我们得知道target所指属性是什么名字 参照我的另一篇文章:iOS - 通过runtime获取某个类中所有的变量和方法 // OC runtime...监听手势,遵守协议UIGestureRecognizerDelegate,实现代理方法 // 当当前控制器是是根控制器时不让移除当前控制器(换句话说就是禁止手势) pan.delegate = self...", self.viewControllers.count); BOOL open = self.viewControllers.count > 1; return open; } 最后说两句...; 所以我们的target就可以通过这种方式获得,不用KVC的方式 哦,最后别忘了禁用系统手势 // 禁止系统的手势 self.interactivePopGestureRecognizer.enabled
安卓:设置 -> 辅助功能 -> 无障碍 -> TalkBack(不同机型路径可能不一样) 以下是一些主要的 VoiceOver 手势: 轻点:选择并朗读项目。 轻点两下:激活所选项目。...左右轻扫:选择下一项或上一项。 三个手指向上或向下轻扫:滑动屏幕上的列表或区。 双指搓擦:快速来回移动两个手指三次(形成“z”字形)以解除提醒,或者返回上一个屏幕。...首页 feeds 左右两栏 在开发过程中应尽量避免使用会影响到 DOM 视觉顺序的样式,如果无法避免,需要手动设置 tabIndex 属性,告知读屏软件正确的内容顺序。...滑屏手势差异 安卓:双指滑动,根据手势自适应滑动; iOS:三指滑动,一屏一屏分页滑动。...aria-role='button' 读取差异 安卓:读作“描述+按钮+子元素文本描述”,需借助 aria-hidden='true' 隐藏子元素文本描述,避免信息重复朗读。 iOS:有两种情况。
(二)轻扫事件 接着是轻扫事件。 WX_ADD_EVENT(swipe, addSwipeEvent)复制代码 这个宏和上面点击事件的展开原理一样,这里不再赘述。...@[resultTouch] : @[]}]; }复制代码 当用户轻扫以后,会触发轻扫手势,于是会在window上和rootView上会获取到2个坐标。...wx_identifier被关联到了各个手势识别器上了。 ? (三)长按事件 接着是轻扫事件。...JS的参数和轻扫的参数changedTouches几乎一致。...在长按手势开始的时候就传递给JS两个Point,screenLocation和pageLoacation,以及手势的wx_identifier。这部分和轻扫手势基本一样,不多赘述。 ?
从点按、滑动到捏合、轻扫,触摸操作不仅简单直观,同时能够给予参与者良好的反馈。作为多点触摸的先驱者,Apple甚至为 MacBook 也装上了硕大的触摸板。...好在微软自 Windows 8 以来一直在优化移动设备的使用体验,在 Windows 10 中,我们只需一个驱动就能轻松将触摸板免费升级为精确式触摸板,从而开启 Windows 自带的触摸手势功能。...在展开“鼠标和其他指针设备”后,即可查看你的触摸板的生产厂商。目前支持的厂商有 Elan 和 Synaptics ,这也是绝大多数笔记本电脑的配置。...待安装完成后再次重启计算机,你会发现 Windows 的触摸板选项中新增了手势操作的选项,并且显示“你的电脑有一个精确式触控板”。...从此以后程序切换,桌面切换等操作都可以通过多指手势完成,闲置已久的触摸板终于可以派上用场了。
领取专属 10元无门槛券
手把手带您无忧上云