倒数第二篇,献上我一直在用的布局黑科技

当前位置:首页>设计文章>UI>倒数第二篇,献上我一直在用的布局黑科技
2020年的第29篇原创文章
距离年底 30 篇目标还剩 1篇
(本文约4000字,预计阅读时间5分钟)

我一贯主张不要为工具所累,所以在各种诱人的Sketch插件面前,我总是提前思考下自己的真正需求,这款软件是将我奴役,还是为我所用?

而我在亲自使用Anima这款工具小半年后,开始意识到它是一款真正优秀的提效工具,并且效果立竿见影。尤其是Stack(堆栈)这个功能,毫不夸张得讲,用“逆天”二字形容丝毫不为过。它能真正得将你的页面内容以动态的方式布局工作,从而实现与css中Flexbox类似的布局效果。

前排提醒,Anima在国内相关的文章不多,很多名词未查证到专业的中文术语,所以大量名词我直接以英文来讲述,不过我都会给出清晰的解释~

大纲:

关于Anima

Padding内间距

Pin固定边缘

Padding内间距

Anima的局限性

最后

关于Anima

Anima(跟我念,ai ni me,不是阿尼玛)产品的主打功能有两个,一个是在线的响应式原型,我们完成设计稿后用浏览器可以真实得预览,而且可以手动添加各种逼真的交互动画;另一个正如官网所说的那样“让设计与开发归于统一”,帮助开发者在设计稿上一键获取代码(emmmmm,大概类似蓝湖和zeplin那样的高效协作平台)。

倒数第二篇,献上我一直在用的布局黑科技

但是!!

Anima另一个功能auto-layout我绝对要在年底前推一下。虽然不知道为什么官网没有半点对它的介绍和宣传。。

auto-layout主要包含三个功能,padding、pin和stack,我简单翻译为内间距、固定和堆栈。

前2个是不是很熟悉?没错,sketch里自带,不过Anima让创建的过程变得更简单和高效。最后的堆栈放到了最后压轴讲,因为这是个,惊艳全场的功能

padding内间距

padding对标sketch中的智能布局,我在组件动态自适应这一篇有讲到。智能布局主要解决的是组件自适应问题,它可以将我们制作好的组件尺寸基于一类规则,跟随内容的变化而动态适应。

但是Anima,它有什么资格抢别人饭碗呢?

还真有。

简单演示下它的padding功能。你可以切换padding的位置选项来实现不同位置的数值输入。

倒数第二篇,献上我一直在用的布局黑科技

而且padding只是图层编组的过程,它对图层不会产生破坏,我们依旧可以对文字和容器进行任意编辑。

Anima创建文本后无需组件化,一键padding即可生成,而且padding提供数值输入,无需自己手动测量。如果想要去除padding效果直接解组即可,非常快捷方便。

但是,无需组件化的同时也为它的复用性埋下了隐患。

我后面尝试将padding后的对象创建成symbol组件,自适应上没有任何问题,但是在进行拉伸适配处理时是没有效果的,这也就意味着它在响应式上和symbol无法兼容。

所以,我建议界面设计中的自适应依然使用sketch自带的智能布局。Anima的padding并非不能用,只是不适合用来响应。

pins固定

Anima的pins除了本身sktech自带的“pin to edge”和“fix size”之外,还提供了其他额外新增的功能。具体见我在面板中标红的位置。

倒数第二篇,献上我一直在用的布局黑科技

固定水平或垂直居中

字面意思很好理解,在跟随父级响应时始终保持水平或者垂直方向的居中。

倒数第二篇,献上我一直在用的布局黑科技

数值化的边缘间距

sketch自带的固定边缘功能只能选择向哪个方向固定,具体数值需要自己手动测量。

但是Anima提供了更加可控、便捷的数值功能,你只要输入数值即可迅速控制元素的位置。

而且它还提供百分比的形式,即元素内间距占父级总尺寸的百分比,内间距方向取决于pin的方向。

倒数第二篇,献上我一直在用的布局黑科技

数值化的固定尺寸

这里直接结合上个例子固定了左上边缘,勾选后默认取值对象本身尺寸。跟随响应时始终保持尺寸的固定。

倒数第二篇,献上我一直在用的布局黑科技

当然也可以自己输入固定数值,同样支持百分比。另外,尺寸后的min和max分别代表了响应过程中元素尺寸最小值和最大值,更加可控了。

倒数第二篇,献上我一直在用的布局黑科技

距离中心的偏移量

至于距离中心的偏移量,就是将对象基于中心朝某个方向偏移一段距离。

比如在勾选水平+垂直居中后,水平和垂直方向的偏移量就是0。

如果你想基于C位向某个方向偏移,那就在对应的方向上输入数值即可(右上方为正数,左下方为负数)

倒数第二篇,献上我一直在用的布局黑科技

Stack堆栈

终于,到了我们的Stack!为什么要把它放最后讲,就像我开头说的那样,这个功能极为逆天

官网文档说明中在Stacks标题后面括弧了一个Flexbox,这也就意味着这个功能可以达到前端CSS中的Flexbox效果。

文档里把Stack定义为:

AStackis a special type of Group that defines the layout of its child Layers.

我简单翻译了下,就是堆栈这个东西是编组的一种特殊类型,它定义了子级图层的布局。

光看也是懵懂,我上个动画便于各位直观get到它的逆天之处。

倒数第二篇,献上我一直在用的布局黑科技

真的是太、逆、天、了。请允许我多次这么形容。

下面我会先简单讲下stack可控制的外部属性,而stack自身内部的核心属性放在了最后。

Stack的创建

创建stack相当简单,只需要选中你想要控制的元素,一键点击右侧icon(group to a stack)即完成了创建。取消stack的操作和上面的padding、pin一样,直接ungroup解组即可。

创建后,它会自动基于目前图层的排列自动按某个方向堆栈并且对齐,同时自动保持spacing间距的一致。

倒数第二篇,献上我一直在用的布局黑科技

Direction堆栈方向

定义元素们排列的方向是水平还是垂直,对应在面板中是direction这个功能。

倒数第二篇,献上我一直在用的布局黑科技

Align对齐方式

Anima提供了四种元素的对齐方式,分别是Top(顶对齐)、Center(居中对齐)、Bottom(底对齐)和Spread(等宽对齐,即通过拉伸的方式强行使元素的尺寸保持一致)。对应在面板中是Align功能。

倒数第二篇,献上我一直在用的布局黑科技

Spacing间距

即定义元素的间距,对应在面板中是spacing这个输入框。

倒数第二篇,献上我一直在用的布局黑科技

Stack

Stack自身的内部属性是Flexbox布局的核心精髓所在。为什么是内部属性,就是因为这个属性属于本身固有的属性,它不会像上面的那些外部属性那样可以手动控制。

简单来说,stack能够基于既定的Spacing,实现所有(注意是所有)元素布局的自适应。这是什么概念?

大家Word应该都用过,当我们在稿子中间插入一段文字后,后面的文字会自动折行,删除这段文字后,下面的文字又会向上回到刚刚的空间。这是文本编辑器固有的属性,所有的笔记类应用也是这样。

倒数第二篇,献上我一直在用的布局黑科技

但如果这两段文字分别属于独立的图层,那就会非常麻烦。

假设我们需要保持一致的间距。那你得先将下方文字移动一段合适的距离,然后拷贝上方文字,编辑、移动,然后再手动或者通过Tidy(整理)功能保持间距的一致。

倒数第二篇,献上我一直在用的布局黑科技

是不是跟产品突然要求你在页面中加字段的场景很像?低效而无奈,尤其在我们B类产品复杂的后台表单页,新加字段的影响范围一旦很广会异常麻烦,当时都恨不得扒了产品一层皮。

但Stack解决的就是这个!!

比如,我们给下面三个色块加入stack后,删除中间的色卡,下方色块会基于给定的spacing自动补位。

倒数第二篇,献上我一直在用的布局黑科技

另外,你也可以随意调整、颠倒图层的顺序,它们的spacing始终也是固定的。

倒数第二篇,献上我一直在用的布局黑科技

这些被赋予stack属性的图层仿佛有了自己的生命力,可以自己动,而不需要我们再去手动干预。

我可以毫不夸张得讲,拥有了Stack,你就可以告别那些因增减、调序而导致间距调整的低效重复性工作了。(怎么感觉像打广告。。)

Collapsing塌陷

(原谅我想不到其他更合适的翻译。。)

Collapsing听起来逼格高,实则很简单。没有激活它时,Stack删除一个图层才能起到间距自适应的效果,但是有了Collapsing,我们只要隐藏图层即可同样实现效果。

我通常建议是开启的,避免“改了十几稿,还是用初稿”,但你初稿早已不再的的人间惨剧发生。

Stack的嵌套

Stack支持嵌套来应对那些较为复杂的版块和页面。

拿一开始的那个例子说。我通过将单行卡片Stack化,来保持每个卡片的间距保持12px。这属于右内向外的第一层。

倒数第二篇,献上我一直在用的布局黑科技

同时我希望这些卡片不论大小、数量,整体的宽度始终保持固定,并且卡片的行间距保持12px。那么我们需要再次将刚刚的两个Stack嵌套成一个更大的Stack,通过spacing和等宽的Align来实现。

倒数第二篇,献上我一直在用的布局黑科技

具体参数见下。

倒数第二篇,献上我一直在用的布局黑科技

很简单的几步,就可以达到上述的效果。

倒数第二篇,献上我一直在用的布局黑科技

当然,我们可以结合pins来实现更多的目的。比如我们希望内容的总宽度和人物图片能够固定、边距能够固定、人物图片始终保持居中等等,都可以使用Pins中的属性来控制。这里就不做演示了。各位有空可以自己去尝试一波~

源文件和Anima插件我打包好了,后台回复”Anima“即可获取~

Anima的局限性

可惜的是,目前Anima和symbol的兼容性依旧是个问题,我在搭建组件库时曾经试图将两者结合在一起,但在动态自适应和响应式上总会出现各种各样的问题。所以,各位使用到symbol时需要谨慎使用。

但是,在组件的基础上进行页面的快速搭建时,或者在不涉及到组件的页面,我会毫不犹豫得跟你推荐它!!

最后

如果说原子设计解决的是一次性设计问题,那么Anima就是非常简单粗暴得快。它不需要任何的组件、不需要手动调整间距、学习成本也比sketch的智能布局、弹性布局低得多,不得不说,它给你带来的提效效果立竿见影。

但愿倒数第二篇的文章对你有所帮助。

我是AndrewChen,下期见。

如果你觉得对你有所帮助,欢迎点个在看鸭,让我知道这篇文章对你是有价值的,当然这也是我继续下一篇分享的最佳动力~!

倒数第二篇,献上我一直在用的布局黑科技
倒数第二篇,献上我一直在用的布局黑科技
倒数第二篇,献上我一直在用的布局黑科技

你可能还想看

《我做设计这么久,居然没听过这个模型?!》

倒数第二篇,献上我一直在用的布局黑科技
公众号推送机制改版,文章不按发布时间排序啦。各位在公众号的右上角“...”(不是文章的右上角~)将转行人的设计笔记设为星标⭐,这样就不会错过每一篇文章了!~

除非注明,否则均为UIED用户体验学习平台-Andrew?的原创文章,转载必须以链接形式标明本文链接

本文链接:https://www.uied.cn/14249.html

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
UI效率工具设计干货

一篇文章帮你搞定组件的动态响应

2023-4-7 20:32:41

UI效率工具设计干货

最后一篇了,和你聊聊延迟满足!还不来看看么?

2023-4-7 21:29:32

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索