在 swift 里扩展 UIColor 使用十六进制颜色值
Dec 05, 2019
4.2. The RGB hexadecimal notations: #RRGGBB 十六进制颜色表示方式是 #RRGGBB(6位),带 alpha 的表示方式是 #RRGGBBAA(8位) 取值范围是 00 - FF。 十六进制颜色缩写的表…
了解 Image 的 capInsets 和 resizingMode
Dec 04, 2019
拉伸 UIImage 的时候使用的方法是 resizableImage,它的声明如下: func resizableImage( withCapInsets capInsets: UIEdgeInsets, resizingMode: UIImage.ResizingMode ) -> UIImage capInsets 指定要保护的区域,就是图像的四个角落,如果大小是 0…
视网膜屏幕下像素对齐计算方法
Dec 03, 2019
使用 CoreGraphics 裁剪图片的时候如果计算后的尺寸没有像素对齐,绘制的图像就会有 1px 的透明边框。 像素对齐的算法: 例如需要计算 0.5pt 的高度在当前屏幕下需要多少 px…
在 iOS 里 100% 还原 Sketch 实现的阴影效果
Nov 19, 2019
还原不了设计师视觉稿的开发者不是一个合格的页面仔。 Sketch 是 APP 设计的神器,大部分设计师都选择它作为 APP 界面的设计工具。 在 Sketch 里设置一个阴影,效果图和参…
给 Xcode 添加最新的 iOS DeviceSupport
Nov 18, 2019
默认情况下 Xcode 只能调试其内置对应的 iOS 版本,如果发布了新的 iOS 版本而没有更新到与之对应的新版本 Xcode,就不能进行调试了。 要解决这个问题, 需要在…
swift 里正确的实现一个 NSTextStorage 子类
Nov 11, 2019
即使你按照官方的文档来操作依然有可能会掉进坑里,因为 swift 的实现和 objc 稍有不同。 NSTextStorage 是基于 NSMutableAttributedString 的一个虚基类。 这意味着当你写一个 NSTextStorage 的子类时,必须正确实现…
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,这个方法运行…
模仿微信适配 iPad 的布局方式
May 08, 2019
微信在 iPad 上竖屏时显示的样式和手机版一样,横屏的显示为分隔视图。 UIKit 里可以实现这样的效果的组件是UISplitViewController。 接下…
在 iOS 中使用 icofont 字体
Apr 30, 2019
获取 icofont 可以在 icofont.com 下载到 icofont.ttf,里面包含了很多图标。 把下载回来的 icofont.ttf 拖到项目里,或者新建一个 fonts.bundle 用来放字体资源。 在 APP 启动的时候注册字…
在 ObjC 项目里使用 Swift 静态库
Mar 29, 2019
Xcode 9 开始 Swift 支持编译生成静态类型的 framework 如果给之前的 ObjC 项目直接添加 Swift 写的 framework,在编译的时候会报错,错误信息是无法找到 Swift 的方法。 解决方…