普通视图
在 SwiftUI 中,如何判断 Text 是否被截断?
Text 在 SwiftUI 中大量被使用,与 UIKit/AppKit 中对应的组件相比,Text 无需配置,开箱即用,但这也意味着开发者丧失了更多对其的控制能力。在本文中,我们将通过一个实际案例来展示,如何用 SwiftUI 的方式来完成一些看似"不可能"的任务:在一堆给定的视图中,找出第一个文本未被截断的,并以此作为需求尺寸。
Swift 数学计算:用 Accelerate 框架让性能“加速吃鸡”
SwiftUI 7(iOS 26)中玻璃化工具栏的艺术
Swift 6.2 并发江湖:两大神功破局旧制,代码运行经脉革新(下)
Swift 6.2 并发江湖:两大神功破局旧制,代码运行经脉革新(上)
SwiftUI 7 江湖新风:WWDC25 揭晓神秘武林志
SwiftUI 7(iOS 26 / iPadOS 26)中玻璃化标签页的全新玩法
为什么 Swift 字符串不能用 `myString[3]` 随便取字符?
为什么 Swift 要求我们解开可选值?
iOS开发中使用滑动窗口协议的实践
开发者必看,全面解析应用更新策略,让用户无法拒绝你的应用更新!
避风塘
大概 4 年前,我注册了一个域名 before.town,因为脑海中忽然闪过「避风塘」,好像正好可以对应英文的 before town,而 town
又可以作为域名的后缀,就搜了一下,果然可以注册,就毫不犹豫地下手了,这一放就是 4 年。
生活中,总是会有一些瞬间,让我们忍不住拿起手机记录下来,但其实也没有太 Special,这些照片你想与别人分享,但好像又不够精致到值得发个朋友圈或 Instagram,于是就只能默默地住在相册里。我有时会想,这些照片它们会不会也想有一个出口呢?
「避风塘」的概念和这些照片好像挺契合的,带着这个想法,我决定让 before.town 成为这些「不够精致」但充满生活气息的照片的避风港。
它不是一个追求完美构图和滤镜的平台,更像是一个数字化的「避风塘」,让那些在主流社交媒体中找不到位置的照片,能够在这里找到一个安静的角落。你可以在这里分享你随手拍下的街角风景、一杯咖啡的特写、或者只是一个不经意的瞬间。它们可能没有华丽的辞藻来描述,也不需要精心的排版,但它们都带着你生活的温度和独特的视角。
最后,欢迎来避风塘分享你的日常 🙃。
我们什么时候应该使用协议继承?——Swift 协议继承的应用与思
Swift 方法调用机制揭秘:从虚表到性能优化
高温与奇怪的天象 | 肘子的 Swift 周报 #092
【HarmonyOS】鸿蒙蓝牙连接与通信技术
高温与奇怪的天象 - 肘子的 Swift 周报 #92
从 6 月中开始,我所在的城市也迎来了罕见的高温天气。尽管相较于动辄 35-40 多摄氏度的其他地区,30-31 摄氏度在数字上看起来并不夸张,但对于习惯了 20 几度的我来说,这种温度已经很难熬了。
SDWebImage 弱引用缓存
SDWebImage 是iOS 开发最流行的异步图片加载框架, 其中的缓存模块 SDImageCache
有一个很精巧的设计弱引用缓存, 源码参考
1 |
@property (nonatomic, strong, nonnull) NSMapTable<KeyType, ObjectType> *weakCache; // strong-weak cache |
在我们的项目中引入了这个小修改, 整体的缓存命中率有1%左右的提升,
是否开启 | 内存缓存命中率 | 磁盘缓存命中率 | 下载命中率 |
---|---|---|---|
开启弱引用缓存 | 67.99% | 21.36% | 10.67% |
不开启弱引用缓存 | 66.76% | 21.99% | 11.25% |
什么是弱引用缓存
- 强引用表(NSDictionary), 对图片保持强引用, 保证缓存一定存在
- 强引用表(NSCache), 对图片保持强引用, 且会随着系统内存大小/切换前后台自动清理缓存
- 弱引用表(NSMapTable), 对图片保持弱引用, 只要图片还在内存中(被 UI 强引用 或被其他组件强引用), 就能命中缓存, 不消耗额外内存