FoolishTalk

谈谈技术,聊聊生活

CloudKit实践

iOS,CloudKit

前言 在iOS 11后,有个接力的功能非常好用,可以在iPhone和Mac上共享剪贴板等。但是自己用的时候,总有很多小问题,明明需要打开的都打开了接力失效、上一次复制的是图片后来复制的是文本,iPhone直接剪贴板都不出来了。经历了一顿需求分析之后,决定自己动手做一个。 既然要实现跨平台,免不了要涉及到服务器,选择自己去写还是使用现有的云服务,成为了当前选择的最大问题。 为了解决又快懒~~...

知乎app内打开app store的功能分析

iOS,动画,SKStoreProductViewController

前言 今天刚好有个朋友问了我一个像知乎那样,app内打开app store的app内容页面,上面还能播放视频这种是怎么实现的,虽然问题很简单,但是本着探讨功能实现的想法,记录了下来。知乎app内效果如下: 通过这个图可以看出,其实要做的事情很简单,就是把原来的view往下移一点,然后在上面放视频。 无非就是几个思路,先看看原来的vc是否有子view属性,通过继承去重写约束,其次就是使用...

聊聊ReplayKit踩过来的坑

iOS,动画,ReplayKit

前言 ReplayKit是WWDC15推出的苹果原生录屏框架,目的在于让开发者更方便的使用屏幕录制功能,在悦跑圈的项目中也有用到,API对开发者可以说是非常友好了。我们先来看看ReplayKit的API。 开始录制 [[RPScreenRecorder sharedRecorder] startRecordingWithHandler:^(NSError * _Nullable ...

24岁的杂谈

杂谈

昨天刚过完了自己24岁的生日,过了第一个在工作之后,没有在敲代码的生日,工作的第一年生日,写了FFDB,第二年的生日写了Swift-FFDB,尽管这两个库都不完美,但是都是花了非常多心思在里面,自己还是很满足的。 今年的生日很特别,和我女朋友一起过的第一个生日,认识我的人都知道,以往的自己一直沉迷在写代码,完全不在乎身边的人和事,也不知道为什么,这次主动了起来抓住机会,说起来也很有巧合,我...

NS_ASSUME_NONNULL_BEGIN和NS_ASSUME_NONNULL_END

iOS,Xcode 10

更新了Xcode 10之后在新建OC的类的时候,都会默认加上了NS_ASSUME_NONNULL_BEGIN和NS_ASSUME_NONNULL_END。 NS_ASSUME_NONNULL_BEGIN @interface Person : NSObject @end NS_ASSUME_NONNULL_END 在Objective-C中,是没有像swift中!和?的概念,为了解决...

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...