摘要: 动画效果 https://www.jianshu.com/p/18f7bc63945a svga https://www.jianshu.com/p/c1b3fcc7b16d 一个动画管理类(基于Lottie封装) https://www.jianshu.com/p/01f6bb509d54 Air 阅读全文
posted @ 2022-08-03 18:46 SoulDu 阅读(449) 评论(0) 推荐(0) 编辑
摘要: iOS 客户端应用架构看似简单,但实际上要考虑的事情不少。本文作者将以系列文章的形式来回答 iOS 应用架构中的种种问题,本文是其中的第二篇,主要讲 View 层的组织和调用方案。下篇主要讨论做 View 层架构的设计的一些心法。 本门心法 重剑无锋,大巧不工。 《神雕侠侣》 这是杨过在挑剑时,玄铁 阅读全文
posted @ 2019-04-10 20:49 SoulDu 阅读(583) 评论(0) 推荐(0) 编辑
摘要: iOS 客户端应用架构看似简单,但实际上要考虑的事情不少。本文作者将以系列文章的形式来回答 iOS 应用架构中的种种问题,本文是其中的第二篇,主要讲 View 层的组织和调用方案。上篇主要讲 View 层的代码结构、布局,以及一些最佳实践的讨论。 当我们开始设计 View 层的架构时,往往是这个 A 阅读全文
posted @ 2019-04-10 20:48 SoulDu 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 摘要:iOS 客户端应用架构看似简单,但实际上要考虑的事情不少。本文作者将以系列文章的形式来回答 iOS 应用架构中的种种问题,本文是其中的第一篇,主要讲架构设计的通识和方法论等,同时还讨论了大家关心的架构分层、是否要有 common 文件夹等问题。 缘由 之前安居客 iOS app 的第二版架构大 阅读全文
posted @ 2019-04-10 20:46 SoulDu 阅读(983) 评论(0) 推荐(0) 编辑
摘要: 路由是实现模块间解耦的一个有效工具。如果要进行组件化开发,路由是必不可少的一部分。目前iOS上绝大部分的路由工具都是基于URL匹配的,优缺点都很明显。这篇文章里将会给出一个更加原生和安全的设计,这个设计的特点是: 路由时用protocol寻找模块 可以对模块进行固定的依赖注入和运行时依赖注入 支持不 阅读全文
posted @ 2019-04-08 18:50 SoulDu 阅读(1021) 评论(0) 推荐(0) 编辑
摘要: 第一篇文章对VIPER进行了简单的介绍,这篇文章将从VIPER的源头开始,比较现有的几种VIPER实现,对VIPER进行进一步的职责剖析,并对各种细节实现问题进行挖掘和探讨。最后给出两个完整的VIPER实现,并且提供快速生成VIPER代码的模板。 Demo和轮子的github地址是:ZIKViper 阅读全文
posted @ 2019-04-08 18:25 SoulDu 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 洋葱模型 洋葱模型,是从冰山模型上演变而来的,用来进行层次分析的模型,这是Redux的洋葱模型。 action从最外层传入,层层传递直至核心后,经过逐层事件触发,再次被分发出来,执行后续操作。 洋葱模型如今已经广泛应用于各个领域,进行更直观清晰的分层剖析。 The Clean Architectur 阅读全文
posted @ 2019-04-08 18:22 SoulDu 阅读(839) 评论(0) 推荐(0) 编辑
摘要: #define isIphoneXXS [UIScreen mainScreen].bounds.size.width == 375 && [UIScreen mainScreen].bounds.size.height == 812 #define isIPhone5 [UIScreen main 阅读全文
posted @ 2019-01-07 16:44 SoulDu 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 原因: iOS11弃用了automaticallyAdjustsScrollViewInsets属性,新增contentInsetAdjustmentBehavior来替代它 //解决方案 添加如下代码,建议在 viewDidLoad添加 if (@available(iOS 11.0, *)) { 阅读全文
posted @ 2019-01-07 16:26 SoulDu 阅读(763) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2018-10-17 17:40 SoulDu 阅读(153) 评论(0) 推荐(0) 编辑
摘要: //根据宽度求高度 + (CGFloat)getLabelHeightWithText:(NSString *)text width:(CGFloat)width font: (CGFloat)font { CGRect rect = [text boundingRectWithSize:CGSiz 阅读全文
posted @ 2018-10-16 10:37 SoulDu 阅读(2994) 评论(0) 推荐(0) 编辑
摘要: //设置导航栏背景色 如果上面的不好用 就用下面的 [self.navigationController.navigationBar setBackgroundImage:[UIImage imageWithColor:RGB(53, 139, 244)] forBarMetrics:UIBarMe 阅读全文
posted @ 2018-10-11 14:19 SoulDu 阅读(3511) 评论(0) 推荐(0) 编辑
摘要: 一个近乎完整的可识别中国身份证信息的Demo就问问你霸气不😄也是通过人脸识别然后捕捉到相机的图片,然后对图片进行信息识别,得到身份证的信息赶紧去下载代码吧,直接在真机运行,你会很开心的😊 https://github.com/zhongfenglee/IDCardRecognition另外还一个 阅读全文
posted @ 2018-10-07 16:12 SoulDu 阅读(532) 评论(0) 推荐(0) 编辑
摘要: KVO键值监听: Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了。 使用方式: 1. 注册,指定被观察者的属性, 2. 实现回调方法 3. 移除观察 上代码之 阅读全文
posted @ 2018-09-27 16:41 SoulDu 阅读(462) 评论(0) 推荐(0) 编辑
摘要: iOS证书配置实践 本文参考了: iOS证书配置指南:http://dev.umeng.com/push/ios/license-configuration-guide 写在前面: 团队开发证书的管理: 一个开发者账户只能申请3个发布证书,2个开发证书(一般在我们的证书界面中应该只有一个开发证书,一 阅读全文
posted @ 2018-09-18 14:27 SoulDu 阅读(2767) 评论(0) 推荐(0) 编辑
摘要: 在开发项目中,会有这样变态的需求: 推送:根据服务端推送过来的数据规则,跳转到对应的控制器 feeds列表:不同类似的cell,可能跳转不同的控制器(嘘!产品经理是这样要求:我也不确定会跳转哪个界面哦,可能是这个又可能是那个,能给我做灵活吗?根据后台返回规则任意跳转?) 思考:wocao!这变态的需 阅读全文
posted @ 2018-09-18 14:15 SoulDu 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 问题一 编译报错 Showing Recent Messages :-1: Multiple commands produce '/Users/duning/Library/Developer/Xcode/DerivedData/XGB-bvlwqwfpzltpeyarupiguxtqzrdn/Bu 阅读全文
posted @ 2018-09-18 14:13 SoulDu 阅读(963) 评论(0) 推荐(0) 编辑
摘要: 终端输入就可以了 安装macOS Sierra后,会发现系统偏好设置的“安全与隐私”中默认已经去除了允许“任何来源”App的选项,无法运行一些第三方应用。 如果需要恢复允许“任何来源”的选项,即关闭Gatekeeper,请在终端中使用spctl命令: sudo spctl --master-disa 阅读全文
posted @ 2017-02-21 18:25 SoulDu 阅读(459) 评论(0) 推荐(0) 编辑
摘要: https://www.jianshu.com/p/bd42bacbe4cc 阅读全文
posted @ 2022-08-03 18:46 SoulDu 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 1.注册fir.拿到token 2.安装 fir-cli 使用 Ruby 构建, 无需编译, 只要安装相应 gem 即可. $ ruby -v # > 1.9.3 $ gem install fir-cli 常见的安装问题 使用系统自带的 Ruby 安装, 需确保 ruby-dev 已被正确的安装: 阅读全文
posted @ 2022-08-03 18:42 SoulDu 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 在iOS开发中,经常遇到和货币价格计算相关的,这时就需要注意计算精度的问题。使用float类型运算,经常出现误差。为了解决这种问题我们使用NSDecimalNumber,下面将通过例子的形式给大家展示一下。 1.加法的运算 //方式1:不进行四舍五入 self.number1 = [NSDecima 阅读全文
posted @ 2019-05-07 17:57 SoulDu 阅读(443) 评论(0) 推荐(0) 编辑