FoolishTalk

谈谈技术,聊聊生活

iOS实现隐藏状态栏动画

iOS,动画

隐藏状态栏是一个相对比较常见的需求,为了让隐藏状态栏更加平滑过渡,我们会给他增加一个动画效果。像常见的渐变透明隐藏效果和上下滚动隐藏效果,系统已经提供好对应的api给我们使用了。在需要隐藏状态栏的Controller下使用这段代码就可以实现了: override func touchesBegan(_ touches: Set<UITouch>, with event:...

WWDC-2018笔记---High Performance Auto Layout

iOS,自动约束

最近总算有点时间写博客了,这次讲的是WWDC 2018中的Session 220 High Performance Auto Layut AutoLayout作为平时用的最多的布局方案,但是在性能上总是饱受病垢,通过这个session,我们可以了解到AutoLayout是怎么工作的,以及在iOS 12上AutoLayout得到了怎样的提升。 正文 talk is cheap,sh...

iOS绘制性能调研

iOS,绘制

前言 在上篇iOS截图引起的思考留下了一些疑问,会在这篇全部解开。 在上一篇结尾的时候,我提出了: 即使是相同的path,drawRect也是有可能会比CAShapeLayer要快的。 正文 先来看两段贝塞尔画出来的路径: 这一段路径是在悦跑圈实际遇到的轨迹情况 func setupAPath() -> UIBezierPath { let bezier =...

iOS截图引起的思考

iOS,绘制,截图

前言 在最初写这篇的时候,并没有考虑到要写「iOS绘制方案调研」为题的一篇的文章,原来只是想记录在悦跑圈4.0开发中遇到的一个关于截图耗时特别长的一个问题,随即在写问题记录的时候,写下来的模拟demo结果却出乎意料,然后决定在以后会写一篇「iOS绘制方案调研」。 正文 在开发悦跑圈4.0版本的时候,遇到了一个很有意思的问题,需要将跑步路线的经纬度在View上绘制一段轨迹,这里的一个原来的做法...

使用Perfect部署APNS推送

Swift,Perfect-Server,APNS,iOS

前言 之前一直忙着工作的业务代码,Perfect系列的文章有段时间没有更新了。Perfect-CRUD也是最近才对外公布的一套ORM组件,支持sqlite、MySQL、Postgres,在这之前一直都是用自己的Perfect-FFDB,看了下Perfect-CRUD的文档之后,感觉还不错,这两天抽时间把之前用Perfect写的一个小项目,从自己的Perfect-FFDB迁移到使用Perfec...

RxSwift从入门到放弃——Rxswift与MVVM的邂逅

Swift,RxSwift

前言 这篇出来的比较晚,最近事情也比较多,一直没时间写,这篇是作为开篇到RxSwift源码分析的过渡。当然也是因为前几天我在公司内部分享ppt的内容也是这个就把这篇当作番外篇看看好了[doge] 这篇聊点什么? MVVM和RxSwift之间的关系 MVVM是什么? RxSwift能解决MVVM什么问题? RxSwift的看法 MVVM和RxSwift之间的关系 我们在...

RxSwift从入门到放弃——开篇

Swift,RxSwift

前言 最近正好在刚好被安排到用RxSwift开发一个小项目,借着这个机会学习了一下。在这之前也有断断续续用了几次,最后总会因为各种各样的Xcode问题弃坑,感觉能坚持下来真的是真爱啊。。主要学起来就是两个问题: Xcode的自动补全十分不友好 RxSwift学习曲线陡峭 自动补全的问题对刚入门的时候来说,真的影响很大,一开始对RxSwift的不了解,看了下网上的资料,准备大干一...

引起懒加载多次的问题思考

iOS,Swift,Tips,Lazy

懒加载是为了保证属性只会初始化一次,同时在没有使用时,节能内存而使用的。苹果也非常推荐我们使用。但是今天在使用的时候,发现居然会懒加载了2次,为了更容易让别人看懂,我精炼了以下的代码,更好解释为什么会出现懒加载2次的情况。 class BViewController: UIViewController { lazy var bgView: UIView = { ...

2018

杂谈,生活

正好今天跟前同事聊到工作的事情,前同事得到了阿里的面试,聊到还是得三年工作经验才能有BAT的面试,有感而发,想聊聊过去做了什么,未来想做什么,为后面的BAT做铺垫。 工作 在2017年的9月,从深圳来到了广州,脱离了无休止的加班,来到万表之后终于有时间做自己的事情了。 SwiftFFDB 空闲下来之后,基本全身心的放在了SwiftFFDB身上,在做SwiftFFDB的时候也暴露出...

用Swift打造一个轻量级POP的网络请求库

Swift,Tips,Alamofire

我从Objective-C转到Swift已经有好些时间了,Swift起码在iOS开发这块,开源组件已经很完善,为什么还要再造轮子呢? 目的只有一个,为了简化对业务层的操作。 事实上,在写这篇文章的时候,这个轮子已经做好了,所以来聊聊他做了什么: 在Objective-C时候我所遇到很多网络层都是这样的结构: ______________ | | | AF...