网易首页 > 网易号 > 正文 申请入驻

两页并排看着简单,改完却重叠又错位

0
分享至

两页 PDF 并排显示,屏幕上却叠在了一起。再修一次,两页又离得太远。后来页面看着正常了,搜索高亮却和文字对不上了。


这是作者在开发 MihirakiPDFViewer 时踩的坑。这个应用是给 iPad 用的 PDF 阅读器,专门读自己扫描的书。作者想要两页对开的阅读效果,还希望封面能单独显示。AI 帮着写代码、改代码,但一次修改到底有没有生效,得反复打开 PDF 实际看,还得把预期效果描述得更精确。

作者把这次经历定位成面向初学者的开发复盘,不是完整的 PDF 渲染教程。文中配的示意图用来解释布局问题,不是当时调试的截图。

改布局,得先有个看得见的目标

早期尝试的结果是:页面重叠、页面偏移、页面之间多出不该有的空隙。改一次布局,可能修好一个症状,另一个还留着。代码说修好了,只能当起点,还是得打开 PDF 亲眼确认。

把需求拆成三条之后,事情才清楚起来:

  • 保持每一页的宽高比;
  • 让两页都落在可用的阅读区域内;
  • 让两页的内侧边缘在跨页的中心线上相接。

这里有个容易忽略的区别:页面的容器和页面可见的内容不是一回事。容器可以占掉半块屏幕,而缩放后塞进去的页面比容器窄。把可见页面在容器里居中,书脊附近就会多出一条空隙。

盯着页面的尺寸、缩放比例和位置看,问题才变得具体。光说“把空隙去掉”不够,能说清哪两条边该相接、哪些比例该保持不变,请求才有用。作者最大的收获是:在要求下一次布局修改之前,先把期望看到的画面描述出来。

从右往左读,不只是把顺序反过来

日文书籍让页面顺序成了另一个独立问题。开发期间,一个从右往左的配置打开后停在了最后一页,而不是开头。

作者把这件事拆成三个决定:哪些页面属于同一个跨页;哪一页在左、哪一页在右;哪个跨页最先出现,翻页时又怎么在文档里移动。这三件事互相关联,但把它们一起反过来,并不会自动得到想要的阅读体验。

用一个五页的例子说明,数字是 PDF 文件里的位置,从 1 开始,不是印刷页码。每个方括号表示屏幕从左到右的内容:

  • 从左往右、封面不单独显示:[1 | 2] → [3 | 4] → [5]
  • 从右往左、封面不单独显示:[2 | 1] → [4 | 3] → [5]
  • 从右往左、封面单独显示:[1] → [3 | 2] → [5 | 4]

最终,页面分组被抽成了一个辅助模块 PDFPageGrouping,它只处理页码索引数组,不依赖 PDFKit 对象。这样配对规则就能脱离视图单独检查和测试。

对初学者有用的做法很简单:动手做完整阅读器之前,先用带页码的小例子写下来。五页文档足以把封面规则和左右位置讲清楚。封面不单独显示时,第 5 页没有配对;封面单独显示时,剩下四页组成两个完整的跨页。不过这些例子还是得在真实界面里验证,分组正确不代表初始选中页和翻页行为也正确。

页面一动,搜索高亮也跟着遭殃

另一个问题出现在搜索上:文字找对了,高亮却画错了地方。页面图像按它在跨页里的对齐方式定位,高亮计算却还假设页面是居中的。两套计算单独看都合理,放到屏幕上就对不上。

修法是让图像和高亮共用同一套页面原点计算。这里的原点指页面左上角在屏幕上的位置,共用的辅助函数 alignedPageOriginX 负责给出水平方向的那部分。

这提醒了一件事:页面和它上面的覆盖层属于同一个视觉功能。改完页面位置,除了看页面本身,还得检查搜索结果。这个道理同样适用于图片编辑器、文档查看器以及其他带标注的界面——底层内容一旦移动或缩放,画在它上面的一切都要重新核对。

作者的预期也在日常阅读中变化。比如一开始要求控件出现时页面缩小,用了一阵之后又改了这个要求。有些修改来自发现哪种手感更好,而不是原来的指令没实现。

下一次改布局之前,作者打算先写一段这样的描述:打开一个五页、含可搜索文本的 PDF,用从右往左的跨页模式,封面单独显示。第一屏显示第 1 页,下一个跨页左边是第 3 页、右边是第 2 页。页面保持比例,落在阅读区域内,在中心相接。在任意一页搜索一个词,确认高亮保持对齐。显示再隐藏控件,然后重新检查页面尺寸和位置。

这段描述给了 AI 辅助修改之后可以观察验证的东西,也能把真正的 bug 和“我自己改了主意”区分开。两页视图这件事教给作者的是:把期望看到的东西说得更具体,把页面分组和翻页导航分开,页面几何一变就检查覆盖层。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
吃相难看!港媒曝霍启山喜讯不到3小时,荒唐事发生,还不止一件

吃相难看!港媒曝霍启山喜讯不到3小时,荒唐事发生,还不止一件

手工制作阿歼
2026-11-12 12:41:20
直到看到张萌对她翻白眼,才懂为何1年上5次春晚也没红,越扒越有

直到看到张萌对她翻白眼,才懂为何1年上5次春晚也没红,越扒越有

不写散文诗
2026-11-11 17:17:56
卖掉荣耀6年,华为又生了个亲儿子!

卖掉荣耀6年,华为又生了个亲儿子!

牲产队
2026-11-13 00:12:06
赫格塞思遭遇卫兵呵斥,马克龙再次遭遇卫兵接连晕倒

赫格塞思遭遇卫兵呵斥,马克龙再次遭遇卫兵接连晕倒

新民周刊
2026-11-13 09:08:03
WTA总决赛战报:激战165分钟淘汰世界第4高芙,四强已定三席

WTA总决赛战报:激战165分钟淘汰世界第4高芙,四强已定三席

浮云过影r
2026-11-13 12:24:44
史上最大GPU盗窃案!英伟达7600万芯片整车蒸发

史上最大GPU盗窃案!英伟达7600万芯片整车蒸发

环球零碳
2026-11-11 21:38:08
“真是个该死的失败者”!萨巴伦卡的困局到底是什么?

“真是个该死的失败者”!萨巴伦卡的困局到底是什么?

全网球APP
2026-11-13 22:11:56
中国公民请远离!我使馆紧急提醒

中国公民请远离!我使馆紧急提醒

极目新闻
2026-11-12 19:58:14
黄乐朋友圈含金量太高,黄仁勋就成了她的陪衬,配得上爽文大女主

黄乐朋友圈含金量太高,黄仁勋就成了她的陪衬,配得上爽文大女主

皮蛋儿电影
2026-11-11 08:53:20
中国正在失控的商铺空置潮持续蔓延,怎么破解

中国正在失控的商铺空置潮持续蔓延,怎么破解

律法刑道
2026-11-12 09:49:42
100:53!台媒发现不对劲,解放军把台岛裹了三层,赖当局急了!

100:53!台媒发现不对劲,解放军把台岛裹了三层,赖当局急了!

农村黄煮任
2026-11-12 22:01:46
英伟达退出中国市场后,黄仁勋曾叹息:伤害中国,美国受伤更严重

英伟达退出中国市场后,黄仁勋曾叹息:伤害中国,美国受伤更严重

莫地方
2026-11-12 01:25:04
中国空间站迎来首位外籍访客,只待一周就返航

中国空间站迎来首位外籍访客,只待一周就返航

宇宙来信2
2026-11-13 01:10:09
全球最大资产管理集团贝莱德:坐拥15.5万亿美元只有1%投向了中国市场!

全球最大资产管理集团贝莱德:坐拥15.5万亿美元只有1%投向了中国市场!

城事堂
2026-11-12 15:12:38
揭秘:华子为何不做替补席?真相在这

揭秘:华子为何不做替补席?真相在这

体育篮球弟
2026-11-13 03:47:02
冲击生涯300球!意丙联赛迎来“重量级对决”,46岁巨星重返赛场

冲击生涯300球!意丙联赛迎来“重量级对决”,46岁巨星重返赛场

汪星人哟
2026-11-13 19:44:31
4年1.5亿美金!0分+3分+2分!NBA退步最快球星诞生

4年1.5亿美金!0分+3分+2分!NBA退步最快球星诞生

微评体育圈
2026-11-14 00:05:31
重要党刊定调“尊界刹车事件”,震动行业!

重要党刊定调“尊界刹车事件”,震动行业!

互联网品牌官
2026-11-11 16:16:48
现代韦小宝?贵州男子4女伴4娃,正妻是商K公主,正脸、家境曝光

现代韦小宝?贵州男子4女伴4娃,正妻是商K公主,正脸、家境曝光

谢鵑解说
2026-10-14 11:39:22
真被马斯克说中?全球争抢的不是芯片,而是中国20万一台的变压器

真被马斯克说中?全球争抢的不是芯片,而是中国20万一台的变压器

小莜读史
2026-11-07 17:58:29
2026-11-14 07:23:00
报错免疫体
报错免疫体
一名在需求评审和数据异常中反复横跳的产品运营。
263文章数 87关注度
往期回顾 全部

科技要闻

黄仁勋辞职,马斯克们抱不平!

头条要闻

媒体:出轨的巨头很多 只有黄仁勋犯了大忌"非走不可"

头条要闻

媒体:出轨的巨头很多 只有黄仁勋犯了大忌"非走不可"

体育要闻

坎宁安52分:肯吃苦的人就有吃不完的苦

娱乐要闻

陈晓楠对话厉娜和许飞引全网热议

财经要闻

黄仁勋和英伟达的6大难题还在后头

汽车要闻

原厂宽体 2027款领克03家族上市限时10.38万起

态度原创

游戏
艺术
健康
教育
公开课

耗时4年讲完的妮姬大结局,成了二游史上最夯群像剧情

艺术要闻

董诰:平安春喜册

情绪真能让健康人"伤心至死"?

教育要闻

“他是一位巨人”!顶尖大学发讣告

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版