首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

UIPageViewController使用 分享笔记

为了实现翻页效果,查询了很多资料后选择使用了UIPageViewController。原因很简单,使用方便,功能强大,开发速度快。首先,我们先看看翻页效果图: ?...翻页效果展示图 结构 在使用UIPageViewController前,我们应该先搞清楚它的层次结构。(这里是在使用过程的理解,如有不对,欢迎指出)。 ?...pageviewcontroller层次展示图 UIPageViewController作为子控制器加载在viewController上。作为文本控制器的容器,且提供翻页的动画效果。...但是在开发阅读软件还遇到一个非常严重的体验问题。在翻页的时候,书页背面的颜色默认为白色。在黑夜模式中非常“辣眼睛”! ? 黑夜模式书页背面为白色 !...这样就会导致一个非常严重的问题,书页正面页码连续!“消失”的那一显示在了上一背面 ? 1F5EC677-326D-4BAF-96D6-5A885FA07C9F.png ?

2.6K80

阅读器多种翻页的设计与实现

1、平移 UIKit提供UIPageViewController可以很方便实现平移的页面切换效果,使用流程: 1、创建UIPageViewController; self.pageVC = [...; 4、用户pan手势结束,根据动画完成程度确定是补齐动画还是回退; 5、处理完动画相关,将状态重置为1,接受用户的pan手势; 如果还要支持tap手势,则自动完成一次动画效果,再将状态重置为status_show...先确定方向,再获取对应的VC;然后根据左右滑动,分别改变位置(showVC对应不动的VC,moveVC跟着pan手势移动): //手势进行 if (rec.state == UIGestureRecognizerStateChanged...(用animateWithDuration:的动画block来完成); 注意事项: 滑效果通常都需要添加一个阴影效果,可以对showVC进行处理: - (void)addMaskToVC:(UIViewController...用户可以通过简单的tap操作停止交互; 用户的交互有3种touchBegin/touchMove/touchEnd,上述的三个效果实现如下: 1、监听touchMove,计算手指的移动距离,换算成view

3.1K10
您找到你想要的搜索结果了吗?
是的
没有找到

【特斯拉组件】iOS高性能PageController

1.1需求背景 为什么弃用UIPageViewController,首先介绍一下UIPageViewController,这是系统为开发者定制的分页组件,提供了两种分页切换的效果,一是滑动 二是翻页。...参照下面的例图,有一个tab下面有小黄条,跟着手势横向滑动的同时也横向滑动,这里系统的UIPageViewController无法支持。...其外,还需要子页面纵向滑动时候去修改Cover和Tab的frame。所以UIPageViewController无法满足比较复杂的需求。...不相邻页面的非交互切换会闪过中间的页面,产生不好的用户体验,本组件的解决方法是 非交互切换,模拟切换的动画,这里需要考虑的一个复杂情况是第一次动画还未结束就开始第二次,这时候需要提前结束第一次动画。...比如微信阅读的一本书就可能有10000。所以这里如果全部都保存就可能产生一个问题,内存会不会过大。 观察UIPageViewController,它到一定的内存限制,会主动去释放很久没翻过的页面。

1.9K50

UIScrollView视觉差动画

前言:看到凤凰新闻 头条栏目的编辑推荐新闻是这个效果,觉得不错,就想着实现一下,以下就是的实现过程,示例代码请看这儿→UIScrollView视觉差动画。...普通的浏览效果.gif 二、分析动画效果,提出解决方案 注意:这里的left和right是区分拖动可见的两个视图。 1....,尾尾相连,且滑动过程,当前可见的图片有渐进的裁剪效果;前者就像是平铺在一起的一行书,一块儿左右平移,而后者就像是翻书时看到的效果,当前left内容由边到内逐渐消失,而下一right内容由边缘到里逐渐显示...WSLAnimationView () @property (nonatomic, strong) UIImageView * imageView; /** imageView的横坐标 用于拖拽过程动画...之前相关文章: iOS 图片浏览的放大缩小 UIScrollerView当前显示3张图 UIPageViewController电子书翻页效果

70460

vue3打造接近原生体验的抽屉指令

源码 vue3打造近乎原生体验的手势交互体验探索指南 扯淡 :jym想死你们了,沉寂多天,带着高质量文章回来了, jym:你谁啊? 爱写写!!...额,写写写,即使你们不看,那我也得写给自己看,将自己的心得体会、问题踩坑归纳总结,来塑造自己的职业经历 因为一直在笃信人都是经历塑造的,你干了什么事,有什么职业经历,永远比你了什么题重要。...额,那个,坐下,别这么激动,还没说完, 虽然,干了什么事情很重要, 但不是说题不重要啊,因为题,你就干不了什么事,单位你都进不去,你能干个锤子, 有jym说,进不去不进了,干个体户,同志们,个体户现在也不好混啊...想说的话说完了,我们言归正传 为什么webapp体验很差 在我们现在的大多数app,大家都会发现,基本清一色的使用原生开发,只有在不重要的页面,才会使用webapp,也就是所谓的h5面 之所以是h5...当然,值得庆幸的是,web技术的快速发展,我们可以无限接近,根据我骥某人的钻研,在交互比较复杂h5,我们可以利用以下三点 1、利用css3 2、利用requestAnimationFrame 3

40030

听说你也在开发年终盘点?送你一篇详尽的踩坑实战~

划重点: 在视觉设计初期跟视觉反抗过,建议尽量不要在活动做内联视频播放,有的浏览器会挟持video标签的播放,使用自己的方式实现,特别Android,会有很多兼容性问题,会比较影响用户体验。...(疑问解答:为什么统一用WebAudio?...( 但是觉得没啥区别,因为没做很精细 ),完整的骨骼动画至少需要将手拆成很细(如上肢、下肢、滑雪棍)、同时利用 CSS 做骨骼动画有个很坑的点,就是层级,自己可以去实现下。...animationFinish();        }, duration);      }    };    runAnimation(frames.shift());  },  /**   * 停止动画...雪碧图(尤其是动画效果特别多的活动时特别重要) 图片的压缩(你可以通过 https://tinypng.com/ 在线压缩) 视频和音频资源文件的压缩(视频初始为:15M -> 1.5M,音频7.8M

68510

oracle启动时必须启动哪两个服务_富士康的领导

大家好,又见面了,是你们的朋友全栈君。 七个服务的含义分别为: 1....它可以在多或者单个上创建映射拷贝,同时不会影响到系统的系统能。(非必须启动) 2....这时,你就可以在你的博客里写数学公式了 … jQuery无缝循环开源多元素动画轮播jquery.slides插件 详细内容请点击 初始化插件: 一款基于jQuery无缝轮播图插件,支持图内元素动画...eg:include … VIM在文件夹查找 在vim中提供2方法来在其他文件或者文件夹搜索字符串,第一种是vimgrep还有一种是grep....本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

1.2K20

为bookstack制作docker image

+社区自动同步,原文地址 https://stackoverflow.club/article/bookstack_docker/ 前言 制作docker image 下载二进制程序 在二进制版本发布同时下载二进制文件和源代码...而制作容器时的CMD命令不能有分号;,这意味着我们不能在一行执行两条命令。 所以新建run.sh脚本,在其中调用generate_conf.sh生成配置文件,然后运行....制作运行脚本 以上只是制作了容器,容器运行时的环境变量配置,挂载,网络配置等仍需要脚本来简化工作。 准备环境变量 使用-e参数设置容器的环境变量。...制作停止脚本 这里我们给容器进行了命名,如果停止后不删除,会影响下次使用。使用一个简单的脚本简化操作。 ./install.sh 测试 执行安装命令 ....增加uploads的文件夹挂载 解决图片文件的对象存储问题(为什么保存到uploads目录而不是云端)

86620

TCP关闭连接(为什么会能 Time_wait,Close_wait ) ?

MSL=2分钟,但在Berkeley的实现上使用的值为30s,具体可以看www.rfc.net ,要是没有耐心去看英文的可以看这个网站www.cnpaf.net 里面有协议说明以及相应的源码,java源码没有发现这个值...TCP为什么要这么要让这种TIME_WAIT状态存活这么久呢?其原因有两个(参考stevens的unix网络编程1 第38): 可靠地实现TCP全双工连接的终止。...: 1、(推荐方法,只能治标不治本)重用本地端口设置SO_REUSEADDR和SO_REUSEPORT (stevens的unix网络编程1 第179~182)有详情的讲解,这样就可以允许同一端口上启动同一服务器的多个实例...【这个地方会有风险,具体可以看(stevens的unix网络编程1 第181)】 2、修改内核TIME_WAIT等待的值,如果客户端和服务器都在同个路由器下,这个是非常推荐的。...为什么推崇这种方法在(stevens的unix网络编程1 第173)有详细的讲解。

13.5K21

玩转HTML5移动页面(动效篇)

这次就来谈谈一些动画设计的小技巧,能在你时间不多又没有动画想法的时候瞬间让页面增色不少。 同时也会谈及移动端H5面的优化细节与关键点,因此本文章将分为动效篇和优化篇。...*不能良好支持-webkit-animation-fill-mode,也就是渐变动画不能停止在最后一帧。...(3)SVG动画 SVG技术越来越陌生,使用门槛也渐渐降低,而且SVG动画还可以使用CSS控制。 先看个生日页面,是个SVG的蛋糕: ? (查看DEMO) 可见SVG是很强大的!...然而loading还是可以做得很有趣的,一般的做法是: 1.引入品牌,例如APP宣传; 2.引入有趣动画,放一个贱贱的人物跳舞给你看; 3.一切从简,用CSS3简单动画。...(查看DEMO) 当然,真正要做到高效制作动态H5面,还是靠积累,因此平时做好的细节动画自己都积累起来,下次分分钟就能用得上。

4.2K80

Android使用自定义PageTransformer实现个性的ViewPager动画切换效果

只需要在上述代码调用setPageTransformer即可添加切换动画效果~~下面演示google的两个PageTransformer的代码,以及运行效果。...3、版本的向下兼容 1、兼容的原因 首先看下为什么兼容,3.0以下呢?...看上面的两个示例代码,代码View的动画使用的是属性动画,而属性动画是3.0才推出的,那么这么写肯定是兼容3.0以下了~ 那么我们首先引入nineoldandroids,让动画能在3.0以下跑再说...现在我们去3.0以下的机子上去运行,发现还是没有效果~~~ 为什么呢?...B 那么A应当在滑动过程0度到-20度的偏移,B应当在滑动过程+20度到0度的偏移 结合 A的position变化就是( 0, -1] B的position变化就是[ 1 , 0 ] 那么旋转的角度即

1.6K10

docker 常用命令大全

的Class ,而容器呢 是基于这个镜像构建出的实例 类似于咱java 根据Class构造出的一个个实例对象 ,本人是初学者 理解有误还请见谅,并麻烦您说说您的看法让彼此相互学习… 按理解...docker官方镜像搜索 例如 拉取 mysql 5.7.30 ——————这里出现了一些小东西 感觉挺新奇的 随着学习深入再回过头来看吧 为什么提示文件存在 >>>> 请戳: docker 文件分层与数据挂载...使用 Ctrl+C (注:此方式虽然可以退出容器,但此种命令操作方式却是错误的,详细缘由请见下文的容器命令) docker run 命令是十分复杂的 有什么持久运行 映射端口 设置容器别名 数据挂载等...赶紧使用 redis desktop manger 连接测试一下 ** 为什么不行呢 已经确定了 docker redis 容器已经是在运行 且占有端口 6379啊?...那么为什么你有数据恢复需求而没有想到数据持久化,数据恢复备份,数据挂载?自己DEMO的吃亏,是为了平时开发少扣脑壳多摸鱼!

52240

历年高考录取分数线查询

前言 再过几天就要高考了,想起来,是 2016 年参加的高考,不经意间已经 3 年了。...启动加入了动画设计,界面风格还算清爽。 ? 点击进入后,默认查询的 地区->新课标一->山东 的全部批次线。 ?...选择 地区,进而选择根据试卷分类的地区,如果选择 新课标一,我们就可以查看选择采用新课标一的某个地区(比如:山东)的批次线。 ?...后话 目前小程序收录了 2008-2017 年所有重点高校的录取分数线(这其中某些高校的某些年份可能有缺失,正努力补全)和 2008-2018 年采用新课标一/二/三和自主命题省份的所有批次线...,如果你想查询的高校数据无法在小程序无法看到的话,欢迎在文末留言,格式:年份+高校。

1.5K60

玩转HTML5移动页面(动效篇)- 腾讯ISUX

这次就来谈谈一些动画设计的小技巧,能在你时间不多又没有动画想法的时候瞬间让页面增色不少。 同时也会谈及移动端H5面的优化细节与关键点,因此本文章将分为动效篇和优化篇。...*不能良好支持-webkit-animation-fill-mode,也就是渐变动画不能停止在最后一帧。...(3)SVG动画 SVG技术越来越陌生,使用门槛也渐渐降低,而且SVG动画还可以使用CSS控制。 先看个生日页面,是个SVG的蛋糕: ? ?...然而loading还是可以做得很有趣的,一般的做法是: 1.引入品牌,例如APP宣传; 2.引入有趣动画,放一个贱贱的人物跳舞给你看; 3.一切从简,用CSS3简单动画。...这是空间5.0预约第二版,使用了以上的若干方法论,例如loading动画,CSS3动画,SVG星空连线,首屏星球重力感应,音乐(这里使用开启按钮后播放)等等。

2.6K30

Linux系统交换空间介绍

内核的内存管理代码会跟踪那些交换到硬盘上的内存,如果需要的话,可以将它们分页回RAM。 Linux计算机的内存总量是RAM加上交换空间,称为虚拟存储器....除非绝对必要,否则建议使用文件作为交换空间。 震荡 当整个虚拟内存(包括RAM和交换空间)几乎满时,就会发生震荡。...下表2是根据个人在多种环境的经验提出的建议。这些可能不适用于您,但与表1一样,它们可能会帮助您开始工作。...默认情况下,LVM环境FedoraLinux的安装过程会将交换分区创建为逻辑。这很容易,因为您可以简单地增加交换的大小。 以下是在LVM环境增加交换空间所需的步骤: 关掉所有交换。...在本例,我们希望将2GB添加到此交换。首先,停止现有的交换。如果正在使用交换空间,则可能必须终止正在运行的程序。 swapoff -a 现在增加逻辑的大小。

2.5K10

通过 Desktop 学 Docker 也太简单了

这也是为什么它的 logo 是这样的: Docker 提供了 Docker Hub 镜像仓库,可以把本地镜像 push 到仓库或者从仓库 pull 镜像到本地。...对应 desktop 的这部分: 此外,还有这些常用命令: docker start:启动一个已经停止的容器 docker rm:删除一个容器 docker stop:停止一个容器 都可以通过 docker...构建完之后再 run 一下这个新镜像: 这次的桌面目录作为数据挂载到 /app 目录了: 容器跑起来后可以看到确实挂载上去了,也标识为了 mount: 浏览器访问下: 在 inspect...这里也可以看到挂载的目录: 有同学说,就算不在 dockerfile 里指定 VOLUME,还是可以 docker run 的时候通过 -v 挂载数据呀。...VOLUME 指令看起来没啥用,但能保证你容器内某个目录下的数据一定会被持久化,能保证没挂载数据的时候,数据丢失。

57660

Docker看完即掌握

包含已停止的容器(容器怎么运行可以看后面):docker ps 列出当前所有已经创建的容器:docker ps [-aq] 创建容器: docker create 镜像名称 # 根据镜像名创建一个容器...首先进入容器,在容器的数据挂载目录创建文件并写入内容 然后退出容器,查看宿主机挂载目录,可以看到同步更新的文件 ◆ (8)数据的同步 首先停止容器 然后在宿主机修改共享数据 接下来启动前面的容器,...查看共享数据文件,发现数据在容器同步 ◆ (9)数据的持久化 首先删除容器 然后在宿主机修改共享数据 接着重新创建容器并挂载数据 发现数据在容器恢复 ◆ (10)一个容器挂载多个数据,两个容器挂载同一个数据...二.为什么说Docker是容器化技术?...(1)什么是数据:数据是存在于一个或多个容器的特定文件或文件夹,这个文件或文件夹以独立于 docker 文件 系统的形式存在于宿主机 (2)解决了什么问题?

51130

Android启动黑屏及最优解决方案

个人强烈推荐这么做,因为Android想方设法提升的用户体验一下子被你打回解放前。...上面的动画实现其实非常简单,无非就是放缩,移动,渐变的组合使用(仅仅用作范例给大家参考),具体的动画代码细节就不谈了,有兴趣可以去github上看本次项目的demo,我们重点来聊一聊思路。...在这里我们需要明确一点的是,preview window只能是静态图,它本身是展示动画的,我们这里的动画,其实是在进入欢迎之后的展示的。...然后,我们再来谈谈为什么设置xml的方式可以帮助我们更准确的实现动画,就是因为要保证Preview Window和欢迎最开始展示的界面保持绝对一致,只有通过xml的布局才是达到这种效果。...好了,启动做到这个份儿上,应该就可以交货了,不过还有一个小问题需要大家注意的,那就是我们给Preview Window设置的背景图如果不做处理,图片就会一直存在于内存,所以,当我们进入到欢迎的时候

1.7K30
领券