Motiff 妙多中的容器与组都可以用来包含其他图层。但两者在属性和使用场景上存在显著差异,本文将详细介绍容器与组的不同,方便设计师更灵活地组织设计内容。
当你想要基于特定设备或屏幕尺寸做设计时,可以使用容器帮你划定一个界面区域。Motiff 妙多中的容器功能比传统设计工具的画板更全面。除了可以像画板一样用来包含设计内容外,你还可以给容器添加自动布局、在容器内嵌套其他容器、对容器内的子图层设置约束,由此帮助你创建更复杂的设计内容。当然,你也可以为容器添加圆角、填充、描边、效果等基础属性。
和其他设计工具中的组类似,Motiff 妙多中的组允许你将多个图层组合在一起。组的属性由子图层组合而成,其本身并没有任何属性。所以当你调整子图层的尺寸或移动子图层时,组的边界也会随之改变。
概括地说,容器有自身的属性,不受子图层的属性影响;而组的属性则由子图层所决定。接下来本文将从父子关系、容器、组这三个部分展开:
在 Motiff 妙多中,我们使用「父」、「子」、「兄弟」等术语来描述图层间的关系。这些术语常用在解释编程中的类似关系。本节将解释不同场景下图层关系术语的具体含义与用法。
如果你有面向对象编程 (Object-Oriented Programming, OOP) 的经验,需要注意的是 Motiff 妙多中提到的父/子关系与继承无关。
在 Motiff 妙多中,这些关系的功能更像是文档对象模型 (Document Object Model, DOM)。即包含元素 (element) 的容器。
在 Motiff 妙多中,父图层、子图层、兄弟图层的定义如下:
在介绍了图层之间的父/子/兄弟关系后,本节将重点介绍容器图层的创建、属性、尺寸调整和移入移出的操作。
你可以使用 工具在画布中创建容器图层。Motiff 妙多支持通过以下方式创建:
此外,你还可以在画布中创建各种尺寸的容器:
Motiff 妙多支持对已有图层直接创建容器(单个图层或多个图层均支持)。快捷键如下:
容器图层包含以下属性:
Motiff 妙多中的容器包含了一些其他图层类型所不具备的特殊能力:
一个容器是一个父图层,所以你可以调整容器内的任意子图层。
你可以像调整画布中的其他图层一样调整容器大小或比例。
鼠标拖动容器的边界框以手动调整尺寸:
按住修饰键以暂时忽略子图层上的约束:
选择一个预设模板以更改当前容器的尺寸:
如果你已将约束应用在子图层上, Motiff 妙多可能会调整子图层的尺寸以适应新的容器模板。对于未应用约束的子图层,它们会保持初始尺寸和位置不变。
使用右边栏中的设计面板实时调整容器的宽、高。
当前 Motiff 妙多支持在 W 和 H 所对应的输入框区域输入数字,或者通过鼠标悬停到对应图标位置上,拖动调整参数。向左拖动减少数值,向右拖动增加数值。
在宽、高输入框右侧的链接按钮上切换以调整 锁定比例 的开启与否。
当前输入框支持以下运算类型:
不能直接将宽或高乘以百分比,如果 * 50% 得到的是原始尺寸的 50 倍,而不是 50%。
「适应内容大小」可以使得容器自动调整为内容的尺寸。
Motiff 妙多支持在容器、组等图层内部放置其他图层,我们将这一过程称为「嵌套」。通过嵌套可以实现不同图层的组合以创建复杂界面。其中容器图层的嵌套会引入新的层次结构和概念:
如下图所示,示例文件中左边的顶部状态栏、底部导航栏、详细信息这三个模块都是包含了子图层的父容器,使用预设尺寸模板可以为这三个模块再创建一个最外层容器,此时上述三个模块就是非外层容器。
虽然上述术语在 Motiff 妙多中没有直接露出,但它们对于正确理解父子图层、嵌套图层的属性及相互间的影响至关重要。
当你将图层移动到新的位置时, Motiff 妙多可能会重新为其分配父图层。对于容器图层,将图层移入一个容器或者从当前的父容器中移出并放置到另一个容器中时,会发生父子关系的重新分配。
在 Motiff 妙多中,当你向非最外层容器移入图层时,遵循以下默认逻辑:
当你向最外层容器内移入图层时,无论图层大小,该图层都将成为容器的子图层。
在容器内添加新图层时,只要鼠标光标起点落在容器内,新添加的图层不论大小都将成为该容器的子图层。
如果你想在移动图层位置的同时维持原先的父子关系,可通过按住以下快捷键实现:
选中容器后,使用删除键可以直接删除容器。需要注意的是,直接删除容器也会将容器的子图层一并删除。
如果你在删除容器的同时,还希望保留其中的全部子图层,可以选中右键菜单中的「取消编组」选项,或使用快捷键:
要创建一个组,可以先选中一些图层后在右键菜单中选择「创建编组」选项,或使用快捷键:
首次点击该组中的图层时,将会直接选中整个组。要选中该组内的单个子图层,需要双击或直接从图层面板中选中该目标子图层。
当你要取消编组时,选中该组后右键菜单选中「取消编组」选项,或使用快捷键:
组的属性由子图层组合而成,其本身并没有任何属性。