iOS 13 下访问受限制的 _ivar
Jun 09, 2019
在 iOS 13 之前,一般是使用 KVC 来实现访问私有的实例变量,比如要访问 UITextField 的 _placeholderLabel 一般会这么做: extension UITextField { var placeholderLabel: UILabel? { get { return value(forKey: "_placeholderLabel") as? UILabel } } } 一直到 iOS 12,这个方法运行的很好,但是升级到了 iOS 13,运行的时候就崩溃了: …
模仿微信适配 iPad 的布局方式
May 08, 2019
微信在 iPad 上竖屏时显示的样式和手机版一样,横屏的显示为分隔视图。 UIKit 里可以实现这样的效果的组件是UISplitViewController。 接下来就是要自定义一个 UISplitViewController 来逐步实现像微信一样的效果。 …
在 iOS 中使用 icofont 字体
Apr 30, 2019
获取 icofont 可以在 icofont.com 下载到 icofont.ttf,里面包含了很多图标。 把下载回来的 icofont.ttf 拖到项目里,或者新建一个 fonts.bundle 用来放字体资源。 在 APP 启动的时候注册字体,注册之后就能在 APP 里全局使用了,使用方法和使用系统字体一样。 …
在 ObjC 项目里使用 Swift 静态库
Mar 29, 2019
Xcode 9 开始 Swift 支持编译生成静态类型的 framework 如果给之前的 ObjC 项目直接添加 Swift 写的 framework,在编译的时候会报错,错误信息是无法找到 Swift 的方法。 解决方法很简单,在 ObjC 项目里添加一个空的 swift 源文件就行了。 …