iOS 15 开启更快的 ProMotion 刷新率
Sep 28, 2021
iPhone 13 Pro 系列支持最高 120Hz 的动态刷新率,App 需要主动适配才能使用动态刷新率。 在 Info.plist 里加上: <key>CADisableMinimumFrameDurationOnPhone</key><true/> 参考资料 Optimizing ProMotion Refresh Rates for iPhone 13 Pro and iPad Pro
通过后缀名查询 MIME 类型
Mar 07, 2021
MIME type (现在称为“媒体类型(media type)”,但有时也是“内容类型(content type)”)是指示文件类型的字符串,与文件一起发送(…
iOS:禁用快捷指令的通知
Feb 09, 2021
进入系统设置,打开“屏幕使用时间”: 点击“查看所有活动” 滑动到最下面的“通知”分类,找到“快捷指令”,点击进入通知设置页面
iOS Simulators
Feb 02, 2021
iOS Simulators How to install Download iOS simulator dmg Copy to ~/Library/Caches/com.apple.dt.Xcode/Downloads/ Click download button in Xcode Components Simulators iOS 14.3 Simulator iOS 14.2 Simulator iOS 14.1 Simulator iOS 14.0 Simulator iOS 13.7 Simulator iOS 13.6 Simulator iOS 13.5 Simulator iOS 13.4 Simulator iOS 13.3 Simulator iOS 13.2 Simulator iOS 13.1 Simulator iOS 13.0 Simulator iOS 12.4 Simulator iOS 12.2 Simulator iOS 12.1 Simulator iOS 12.0 Simulator iOS 11.4 Simulator iOS 11.…
优雅的使用 Iconfont
Jan 11, 2021
Iconfont 就是把矢量图作为字体,可以很方便的在 App 里显示图标。拥有体积小加载速度快的优点。 推荐两个生成 Iconfont 的网站: 国外的 fontello 国内的 iconfont Fontello 没有自己的资源库,网…
*** -[UIKeyboardLayoutStar release]: message sent to deallocated instance
Aug 29, 2020
项目里使用了 Swizzlling Method 黑魔法来防止 NSArray 越界之类的崩溃。 App 在使用键盘时切换到后台,就会触发一个非法访问的崩溃: *** -[UIKeyboardLayoutStar release]: message sent to deallocated instance ... 去掉黑魔法造成的风险太…
NS_ASSUME_NONNULL_BEGIN & NS_ASSUME_NONNULL_END
Aug 29, 2020
ObjC 里一切都是对象指针,对象之前传值是传指针引用。 Swift 里一切都是对象,参数传递分为值引用和对象引用。 在 ObjC 的方法里,可以判断传进来的指针是否为 ni…
实现一个线程安全的缓存库
Aug 25, 2020
最近做了一个基于 LRU 策略的缓存 ZLRUCache,自己玩着感觉还可以。 …
扩展 UIButton 支持 spacing 并完美兼容 AutoLayout
Jul 21, 2020
众所周知,UIButton 是不支持设置图像和文字间距的。 网上的文章大多数都是通过调节 titleEdgeInsets 和 imageEdgeInsets 达到把图像和文字分开的目的,但是这个方法并不能自动改变按钮的大小,所以带来的问题就是调整了间距之后还需要再计算按钮的大小,而且对于 AutoLayout 无法进行自动适应大小。 …
CoreText note: Client requested name .SFUI-Regular
Jul 14, 2020
开发的时候发现控制台输出如下日志,说是不要直接使用 .SFUI-Regular 作为字体名称。 …