做一个 PDF 阅读器之后,我重新理解了「位置」 永久链接Your Name做一个 PDF 阅读器之后,我重新理解了「位置」Your Name2026 年 6 月 28 日约 179 字#SwiftUI#阅读体验阅读位置不是页码,而是一段连续体验的锚点。“打开侧栏不能让正文跳一下”看起来是一条微小的要求,真正实现时却牵动了布局、缩放、滚动和状态恢复。 1页码不等于位置 同一页里也有阅读进度。只记录页码,恢复后仍然可能让人失去上下文。 2变化前先保存锚点 布局变化之前,保存视口中心所对应的文档坐标;布局完成以后,再把这个坐标映射回新的视口。 3两条交互路径 侧栏开关是离散变化,分隔线拖拽是连续变化。它们应该共享“保持锚点”的原则,但不应该共享完全相同的更新频率。来自开放网络的回应引用、喜欢、转发和站外回复会通过 Webmention 回到这里。正在读取开放网络回应…下一篇01 · 从最小闭环开始评论评论还没开放。配好下面四项后,这里才会出现评论框。打开 Giscus,安装到一个已开启 Discussions 的公开仓库,把仓库、仓库 ID、分类、分类 ID 写入 .env.local 和 GitHub Actions Variables:GISCUS_REPO、GISCUS_REPO_ID、GISCUS_CATEGORY、GISCUS_CATEGORY_ID。目录目录
评论
评论还没开放。配好下面四项后,这里才会出现评论框。
打开 Giscus,安装到一个已开启 Discussions 的公开仓库,把仓库、仓库 ID、分类、分类 ID 写入
.env.local和 GitHub Actions Variables:GISCUS_REPO、GISCUS_REPO_ID、GISCUS_CATEGORY、GISCUS_CATEGORY_ID。