在高层次上,我们试图了解 Framer 渲染具有动态高度的图层的最佳方式。
我们正在将我们的设计从 Sketch 导入 Framer。我们正在构建一个简单的问答页面。每页有 1 个问题,用户将完成 20 个问题,一个接一个的问题页。
页眉、页脚和提示的高度始终相同。问题和答案部分会根据我们要呈现的问题和答案而变化。
我们看到了三种可能的解决方案:
- 创建 20 个不同的草图模板/卡片,每一个代表不同问题的呈现(例如,卡片 1 将列出问题 1 和答案 1)。当第一个问题得到回答时,我们渲染下一张草图卡以显示问题 2 和答案 2。为了清楚起见,我建议每张卡片都包含所有内容:页眉、问题、提示、答案和页脚。
- 有 1 个草图模板/卡片,它是页眉、问题 1、提示、答案 1 和页脚的完整呈现。有一堆也导入 Framer 的迷你模板/卡片层。每个问题都有一个层,每组答案都有一个层。当 Framer 尝试加载问题 2 时,它会加载 question1 的完整呈现与 answers1(以及页眉、页脚等),并将包含 question1 的层与 question2 交换,并将包含 answers1 的层与 answers2 交换。有一个问题,question2 小于 question1,所以现在问题和提示层之间有很大的空白。因此,以编程方式遍历 Framer 中的图层并使用 align 正确对齐它们。
- 有几个小层(标题、问题 1、问题 2、...、问题 20、提示、答案 1、...、答案 20、页脚),并使用 Framer 通过逐层添加每一层来构建页面。还要编写 CSS 以完美匹配设计像素。
问题:我们对#2 的问题是有很多前期工作来重新定位“所有层”。据我们所知,Framer 会复制所有草图图层,并根据它们的绝对位置以及 x 和 y 坐标来定位它们。由于所有层都是绝对定位的,因此必须遍历每一层并根据它们相对于彼此的定位方式重新应用对齐。这看起来确实很笨拙,据我们所知,Framer 中没有帮助函数来帮助实现这一点。当然,我们可以编写一些通过父树并重新对齐兄弟树的东西,但这感觉太容易出错,而且不符合使用 Framer 构建原型的精神。
我们对 #3 的问题是,这感觉就像是在构建网站,而这不像是原型设计。由于我们无法直接导入像素完美的草图设计,因此需要大量像素推送。我们希望在设计更改时快速更新原型。我们预计设计会经常更改,因为我们正在进行大量用户测试并获得很好的反馈。每次更改设计以“重新设计”我的原型时,这种方法都会让我花费大量时间来搅动。
想法?我们是否遗漏了一些明显的东西?感谢您的阅读并感谢您的时间。