最近在做一个新需求:将原有的三个视图纵向拼接展示,超过屏幕高度时可滑动。
示意图如下:
非常简单有木有,然而事情并没有想象的那么简单。
前几个月一直在学习RxSwift,确实相当酷的一个开源库,受益匪浅。在未来学习swift版本(ReactiveSwift)RAC(ReactiveCocoa)之前特意花了3天回顾了一下OC版本(ReactiveObjC)。而之所以愿意写下本篇,是因为这3天中有1天半是在仔细阅读官方文档。官方文档理解之后再去看之前看过的一些他人写的博客,发现质量良莠不齐,真正值得一读的屈指可数。不禁想到原来居然走了那么多弯路。万维刚说:只有学习了“学习的方法”之后才能快速进步。所以学会了哪个开源库不重要,重要的是怎么学会的。越是复杂的开源库,越是要仔细阅读官方文档,之后遇到困惑的地方再找博客对比查证一番,事半功倍。
言归正传,本篇文章主要分为三个部分:ReactiveObjC简介,ReactiveObjC中的基本概念与简单使用,ReactiveObjC中丰富而神奇的操作符。
按照惯例,先来一张图镇帖。
去年公司项目搞重构时学习并应用过一阵RAC,感觉真是6的起飞。近来听说在swift上有一个RxSwift库写的棒棒的,特地学习了下。写下一点学习笔记仅供参考。
本篇文章主要分四个部分:RxSwift简介,RxSwift中的基本概念,RxSwift基本用法,RxSwift中丰富而神奇的操作。
先来一张图镇帖。
本文由Ellen Shapiro于16年发表于raywenderlich,原文可查看Getting Started With RxSwift and RxCocoa。
若能随心所欲的控制自己的代码达成预期的效果,想来一定是极好的。
面向对象编程中大部分程序都是命令式的:你的代码告诉你的程序去干什么同时有多种方式来监听变化-但是通常你又必须显示的告诉系统什么时候发生的变化。
这样其实也还好,不过如果能提前都设置好,在发生变化时代码能够自动更新会不会感觉更加棒棒的?这就是响应式编程的基本思想:你的应用会针对底层数据的改变而做出相应的响应,而不需要你去直接告诉它。这样使得可以全心关注于逻辑处理而不需要维护一堆状态。
近来项目功能重新拆分,主要负责商品详情模块,于是乎看了一下之前代码,真是一片混乱,遂决定应用MVVM+RAC重构下。
首先看一下下面四张截图,了解下想要实现的效果。因为淘宝天猫等客户端已经对商品详情页大改版,找不到之前的截图了,用美丽说的页面举个例子。
本文由René Cacheaux于15年发表于raywenderlich,原文可查看AsyncDisplayKit Tutorial: Node Hierarchies。
AsyncDisplayKit是一个最初为Facebook的Paper项目而设计的iOS框架。它使获得比应用标准view更流畅响应更快速的UI成为可能。
天增岁月人增肉,今天是中秋。
本文由René Cacheaux于14年发表于raywenderlich,原文可查看AsyncDisplayKit Tutorial: Achieving 60 FPS scrolling。
Facebook的Paper团队创造了另一个非常棒的库:AsyncDisplayKit。这个库允许你将图片解码,布局,渲染等操作放到后台线程,这样不会阻塞用户交互,从而使用户界面响应超级灵敏。本教程就是专门介绍它的,好好学学吧。
本文由Colin Eberhardt于14年发表于raywenderlich,原文可查看MVVM Tutorial with ReactiveCocoa: Part 2/2。
Model-View-ViewModel (MVVM) 是一种正在逐渐成为Model-View-Controller (MVC)的替代方案的UI设计模式。
在本教程的第一部分中,你已经见识到ReactiveCocoa是怎样扮演‘胶水’的角色来将ViewModel绑定到相应的View上。
本文由Colin Eberhardt于14年发表于raywenderlich,原文可查看MVVM Tutorial with ReactiveCocoa: Part 1/2,之前已经有过一篇还不错的翻译在这里,但是貌似只翻译了第一部分,于是我想到要翻译第二部分,顺便也重新翻译下第一部分当作复习。
之前项目中有过下载视频的需求,于是满心欢喜的去github上搜索文件下载工具类,结果略失望,竟然没有一个相当满意的。虽然AFNetworking中单个文件下载功能已经相当完善,但是我需要一些比如全部暂停,全部开始之类的管理的功能,于是就试着自己动手造了个轮子。
现在看来,这是之前做过的最有意思的一个功能。😁
M3U8是一种流媒体,现多用于视频播放。当把m3u8格式视频对应的url下载下来用文本打开会发现其实只是一段字符串,包含了很多视频小片段的地址,那么怎么样把整个视频下载下来用于本地播放呢?
之前公司从别的网站上抓了好多视频,后来想做下载功能,本来以为能抓到mp4的路径,后来几经波折发现只能得到M3U8地址,于是研究下到底神马是M3U8。
有些视频App会有一个视频列表播放功能,例如搜狐视频App的热点模块,腾讯视频App的热点模块等。进入此页面会自动播放视频,滑动页面还会自动切换播放视频,同时支持横竖屏切换,确实比较方便。研究了下,实现方法如下。
之前很长一段时间都在做视频相关的项目,其中一个最基础最重要的功能就是播放时的横竖屏切换,于是乎研究对比了下市场上主要视频类APP的横竖屏切换方式。发现共分为两种,一种以优酷视频和土豆视频为代表,当横放手机时整个界面都旋转;另一种以腾讯视频,搜狐视频为代表,当横放手机时只是播放的小视图旋转,其余内容不变。实现方法分别如下。
这几天公司项目没什么新需求,把之前在别的平台写过的部分博客搬过来。😊
之前测试APP时总要手动打包然后再上传蒲公英网站生成二维码,虽然也没有什么大问题,但总觉得有点浪费时间,毕竟打包时不能运行程序,生成二维码时又要打开蒲公英网站,于是想有没有什么方法能一键搞定呢?于是搜了一下发现fir.im都已经做好了,教程相当清晰,so sweet。
这算是正式的第一篇,言归正传,记录一下如何把之前写的一个工程通过pod方式添加供别人使用。
机缘巧合,前几天学习了应用CocoaPods建立私有仓库并向王大胖子吹嘘之,然后他问他怎么样才能看到呢,于是此博客应运而生。应用Hexo搭建博客之后,选择了视觉最为简单的Next主题,世界瞬间干净了许多。
首先记录一下搭建的过程吧,虽然Hexo已经有了详细的文档。