在高层次上,我们试图理解Framer呈现一个动态高度层的最佳方法。
我们从Sketch引进我们的设计到Framer。我们正在建立一个简单的问答页面。每页有一个问题,用户将处理20个问题,一个又一个问题页。
下面是这个设计的一个粗略版本:

页眉、页脚和提示始终是相同的高度。问答部分根据我们要呈现的问题和答案进行更改。
我们认为有三种可能的解决办法:
问题:我们与#2的问题是,有大量的前期工作来重新定位“所有的层”。据我们所知,Framer复制了所有的草图层,并根据它们与x和y坐标的绝对位置来定位它们。因为所有的层都是绝对定位的,它必须通过每一层并重新应用对齐,这取决于它们是如何相互参照的。这看起来确实是排他性的,据我们所知,Framer中没有帮助实现这一目标的辅助功能。当然,我们可以编写一些通过父树工作的东西,并重新排列兄弟姐妹,但这感觉太容易出错,而且不符合用Framer构建原型的精神。
我们的问题是,第三,这只是感觉像建设网站,这不像原型。有很多像素推送,因为我们不能直接导入像素完美的草图设计。当设计发生变化时,我们想要快速更新原型。我们预计设计会经常改变,因为我们运行了大量的用户测试,并得到了很好的反馈。这种方法会让我花费大量的时间来搅动每一次设计改变为“重新设计”我的原型。
有什么想法?我们漏掉了什么明显的东西吗?谢谢你的阅读和感谢你的时间。
发布于 2016-10-01 00:54:55
最后,我们用方法2解决了这个问题。总之:交换层并重新定位下面的所有层,还可以遍历所有父层并根据需要重新调整大小(例如,如果新层小于与我们交换的旧层,则需要通过差异缩小父层)。
总的做法是:
代码要点:https://gist.github.com/MrNickBreen/5c2bed427feb8c701d5b6b1fbea11cb4
特别感谢尼尔斯的建议,它帮助我解决了这个问题。
发布于 2016-08-31 12:31:13
我不知道你在卡片上有多少铬,如果你想要定义Sketch内部各层之间的边距,但是编写一个函数来对齐彼此之间可变高度的图层列表并不一定那么困难:
stackLayers = (layerList, startY = 0, spacing = 0) ->
currentY = startY
for layer in layerList
layer.y = currentY
currentY = layer.maxY + spacing这里的完整示例:http://share.framerjs.com/sztcm5e9l4li/
如果您保持您的素描层的名称包含相同的卡,您可以重新导入从素描和重新定位将继续工作,即使大小改变。
因为Sketch文件中的组的结构树包含在Framer中,所以您可以将想要堆栈的所有层放在一个组中,并调用stackLayers(sketch.nameOfGroup.children, 0, 10)将'nameOfGroup‘的所有子层叠加在一起。
https://stackoverflow.com/questions/39240373
复制相似问题