lufei's Studio.

lufei's Studio.

纸上得来终觉浅,绝知此事要躬行。

英文学习:零
及物和不及物动词及物动词,一般在词典中是这样标注的:「transitive verb」,或者「vt.」,或者「with object」,及物动词后面要加宾语,比如「I love you」 不及物动词,一般在词典中是这样标注的:「intransitive verb」,或者「vi.」,或者「no object」, 不及物动词后面不能直接跟宾语,没有被动语态,比如「she smiles to me」 一个例句「he is survived by his wife」这句话看上去是个被动句,根据上面的总结,此处的 survive 应该是个及物动词,查词典 survive 做及物动词的时候,有三个意...
iOS 图片处理
位图位图就是一个像素数组,数组中的每个像素就代表着图片中的一个点,无论是 JPEG,还是 PNG 都是一种压缩的位图图形格式,但它们都不是图片的原始数据,在 iOS 中,可以简单的通过下面的方法获取图片的原始数据: 1let rawData = image?.cgImage?.dataProvider?.data 在将图片渲染到屏幕之前,必须要先获得原始数据,才能执行后续的绘制操作,这就是为什么需要对图片解压缩的原因。 从原始位图数据恢复 CGImage 代码示例12345678910111213141516171819let image = UIImage(con...
Swift 记一次无聊的测试
奇怪的一段代码1234567891011121314151617181920212223class Test { lazy var label:TestLabel = { let label = TestLabel() return label }() deinit { print("页面销毁") } var testAttribute:() -> () { return {} ...
iOS Auto Layout
前言看了 钟颖大神的微博 之后,惭愧于自己关于 Auto Layout 知识的缺失,于是有了这篇文章。 钟大微博里的不太明白的词 RTL 一种书写方向,如阿拉伯文和希伯来文 A11Y 全称 Accessibility 指「可访问性」,在苹果的定义下指「无障碍使用」,Accessibility on iOS Baseline 指基线,在 Auto Layout 的定义下,一般指「在视图底部上方放置文字的地方」 Cassowary 算法Cassowary 能够有效解析线性等式系统和线性不等式系统,用户的界面中总是会出现不等关系和相等关系,Cassowary 开发了一种规则系统可以通过...
iOS Push & Modal Navigation
最近项目中开始集成一些模块化的页面,所以如何「恰当」地实现页面跳转成为了一个需要特别关心的问题,在了解一些后,在这里做个小小的总结。 Push Navigation这是 iOS 中最常见的 Navigation 机制。 将一个 VC Push 到 Navigation 栈中,由导航栏统一管理。内存管理也由编译器来负责。 简单易用,满足了大部分情况下的页面跳转需求。 主要 api: pushViewController(_:animated:) popViewController(animated:) Modal Navigation模态 Navigation 是指「一个 VC,以...
Mac App 动态库注入
前言MacOS 上的 App 的动态库注入,可以为目标 App 扩展一些新的功能,经过我的小小的探索,大概有两个方案。 方案一首先利用 Xcode 生成一个动态库 libTest.dylib,在动态库 Test.m 中加入一段代码: 123456+ (void)load { NSLog(@" libTest loaded !!! "); } 方便我们判断是否注入成功。 使用 Xcode 创建 Example App,把 Example.app 文件夹找到。 创建 ExampleInject.app 文件夹,并创建一个子文件夹,名...
Git 压缩提交
前言对于有点强迫症的我来说,Git 分支上过多冗余的 commit 记录是我心中的痛,于是「压缩提交」就成了一个必须要解决的问题。 通过各种搜索,查资料,总结下来,大概下面几种办法。 方法一删掉 .git 文件夹,重新 git init,从零开始,吧啦吧啦。。。 简单粗暴~ 如果项目只有一个分支的话,可以这么做,如果还有其他的,建议不要这样做,因为这样就把其他分支的 commit 记录 都删了 方法二使用 git rebase -i,合并 commit 。。。 优雅~ 方法三使用 git reset --soft, 吧啦吧啦。。。 优雅~ 方法四假设我们要压缩的是 master 上的 提...
iOS 关于键盘
前言iOS 上多个输入框,可能出现的键盘遮挡,始终是一个有一丢丢麻烦的问题,当然,有很好的第三方 IQKeyboardManager,帮助我们一行代码解决了这个问题,不过,我还是想自不量力的做一些小小的总结。 iOS 键盘的基本知识在 iOS 上,键盘的变化由 NSNotificationCenter 控制的,所以要想拿到这些关于键盘的变化信息,你得提前在 NSNotificationCenter 上添加观察者,来监听这些关于键盘的通知。 那么具体有哪些通知呢?比如下面这些吧: keyboardWillChangeFrameNotification: 在键盘 frame 更改之前立即发出...
Swift 加密
简述消息摘要算法利用「散列函数」生成固定长度的 「散列值」,主要运用于确保信息传输的一致性。 使用比较广泛的消息摘要算法应该是「MD5」,「SHA-2」了。 MD5 SHA-2 对称加密算法严格地说,消息摘要算法,不能算真正的「加密」,因为它不可逆,也就是说,只能「加密」,不能「解密」。 为了保护信息传输过程中的安全,于是对称加密算法就出现了,从名字能看出来,对称加密的「加密」和「解密」的过程使用的是相同的密钥。 对称加密算法中最著名的是「AES算法」。 AES 对称加密算法 非对称加密算法这种算法需要两种密钥,一个公钥,一个私钥,公钥用作加密,私钥则用作解密,使用公钥把明文加密后所得的...
你可能不知道的UICollectionView
前言最近遇到一个跟 UICollectionView 相关的控件问题,就是如何给 UICollectionView 的不同 Section 设置不同的背景色,进而想到如何给它们设置不同的属性。 为什么想到这个问题,是因为以前遇到这种情况,我往往都是不假思索分成多个 Collection View 来处理的,完全忘记了其实 UICollectionView 是可以分组的,哎,我以前到底绕了多少弯路啊,苦笑~ 了解 UICollectionViewUICollectionView 是 iOS6 以后引入 UIKit 的新的视图控件,Api 设计和 UITableView 类似,基础用法也类...
avatar
路小飞
海内存知己,天涯若比邻!