热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

xcode动态改变窗口大小_详细的理论要点+3个经典案例,帮助你深入理解动态面板...

什么是动态面板动态面板是Axure的高级交互元件,由不同的状态面板组成,是我们制作交互过程中运用频率最高的元件,很多交互效果需要依赖动态面

什么是动态面板

动态面板是Axure的高级交互元件,由不同的状态面板组成,是我们制作交互过程中运用频率最高的元件,很多交互效果需要依赖动态面板实现。动态面板的状态面板就像是一个容器,我们可以在里面放置任何东西,自由发挥我们的设计创意,甚至是为面板中的设计元素添加交互事件,这一切就好像是在一个新的画布当中进行页面设计。

添加动态面板

在Axure中我们有两种方法添加动态面板。

方法一:从Default元件库直接拖拽动态面板元件至设计区域。

方法二:选中需要转换的目标元件,鼠标右键单击选择操作命令【转换为动态面板】。

编辑动态面板

动态面板是由不同的状态组成,每一个状态里面都可以包含多个元件。同一时间,动态面板只能显示一个状态,通过控制这些面板的显示状态,可以实现很多丰富的交互效果。

编辑动态面板状态:双击动态面板选择状态进行编辑,进入状态面板中,我们会看到中间有一个虚线框,虚线框内部为设计区域。我们的设计工作就是在这个虚线框内部完成,我们可以通过改变动态面板的尺寸来调整虚线框的大小。

管理动态面板状态:双击动态面板进入状态编辑模式,点击设计区域上方可以管理动态面板的状态,在这里可以增加状态、复制状态、删除状态。

0af6e62e12e1afd3c1d14c8acf7b2b3e.png

隔离模式:默认情况下,动态面板的状态就像一个封闭的黑盒,将动态面板与外面的世界进行了隔离,在这个盒子当中看不到外在的东西。当我们点击状态面板右上角的隔离按钮,这个封闭的黑盒将变成透明的黑子,可以看到动态面板以外的设计元素,但这个盒子依旧是封闭的,对于动态面板以外的设计元素,我们只能查看,不能进行操作。

关闭状态:点击状态面板右上角的关闭按钮,则退出动态面板状态,回到页面视角。

8a678d29fb114b1bff9a863111911136.png

动态面板样式

滚动条:当动态面板尺寸小于内容尺寸时,需要为动态面板设置滚动条以便查看完整内容。滚动条有四种样式设置,包含:禁止滚动、按需滚动、垂直滚动和水平滚动。选中动态面板,在右侧样式面板中下拉选择滚动条样式。

e757dc27e15d24d8f9466fa1894363e0.png

100%宽度:选择此项后,在浏览中查看原型时,动态面板的宽度将自适应浏览器宽度,不会出现水平滚动条,一般用于通栏设计。需要注意的是动态面板的内容宽度要大于浏览器的宽度。选中动态面板,可以通过右侧的样式面板进行设置。

4dbebe3e544cda6fed258958f9428181.png

固定到浏览器:始终固定在窗口的某个特定位置,如App的底部导航,资讯类产品的顶部标签导航都可以利用“固定到浏览器”的样式效果。选中动态面板,点击右侧样式面板的“固定到浏览器”,勾选固定到浏览器窗口,选择固定位置的方向,设置边距,勾选保持在前面(将动态面板图层置顶)。

5ebf98f57b217536932c066c440c8ca5.png

动态面板事件

动态面板作为Axure的高级元件,有一些自己专有的交互事件,如:动态面板状态改变时、拖动时、拖动结束时、向左/右/上/下拖动结束时、滚动时、向上滚动时、向下滚动时。

01状态改变时

该事件是由“设置面板状态”动作触发的。这个事件常用于需要进行不停改变面板状态的一连串交互动作,如轮播图的循环播放。

02拖动事件

拖动时、向左/右/上/下拖动结束时,允许我们针对拖动过程中,拖动结束后设置不同的交互,其中拖动结束后还可以根据拖动的方向设置不同的交互。如果你有拖动方面的需求,可以将这些需要拖动的元件或元件组合转换为动态面板。

拖动时:用于面板的拖动过程中。

向左拖动结束时:面板向左拖动,且完成拖动动作。

向右拖动结束时:面板向右拖动,且完成拖动动作。

向上拖动结束时:面板向上拖动,且完成拖动动作。

向下拖动结束时:面板向下拖动,且完成拖动动作。

03滚动事件

滚动时、向上滚动时、向下滚动时,允许我们针对滚动过程中,不同的滚动方向设置不同的交互。我们希望向上或向下滚动时,显示不同的内容,这个时候我们就可以将这些有滚动需求的元件转换为动态面板。有些时候,还需要根据滚动的距离显示不同的页面或内容。


交互案例

案例1:进度条加载

1. 在设计区域中添加一个动态面板,命名为“状态指示器”,为动态面板添加两个空状态。

2. 添加两个相同尺寸的矩形,将其中一个矩形填充为橙色,并与另一个矩形重合对其。将橙色矩形转换为动态面板,命名为“进度条”,将进度条动态面板的宽度设置为1,另外一个矩形命名为“背景”。

3.点击页面空白处,点击【新建交互】按钮,选择【页面载入时】事件,添加动作【设置面板状态】,设置状态指示器向后循环切换,循环间隔100毫秒。

4e6dffb2bd2dcab8f98a1701eb6da5dd.png

4. 选中状态指示器动态面板,点击【新建交互】按钮,选择事件【状态改变时】,添加动作【设置尺寸】,为“进度条”动态面板设置尺寸,宽度尺寸设置为[[LVAR2.width+LVAR1.width/100]],其中LVAR1为背景,LVAR2为进度条动态面板,如下图所示,高度设置为进度条动态面板的高度。点击添加情形,设置逻辑条件,当进度条宽度小于背景宽度,执行刚才的【设置尺寸】动作,设置如下图所示。

f13e456dd0f8cc9e32c51c5292c73c74.png
300117c2980b74769132c093073958a5.png

5. 选中状态指示器动态面板,为指示器添加添加第二个情形,添加动作【设置面板状态】,将状态指示器设置为停止循环。

c185294290a1fc8de5ed0ce2a0b4f9e6.png

6. 拖动文本标签至设计区域,命名为“百分比”。选中进度条动态面板,点击【新建交互】按钮,添加【尺寸改变时】事件,添加【设置文本】动作。设置百分比文本的内容为[[Math.floor(LVAR1.width/LVAR2.width*100)]]%,其中LVAR1为进度条,LVAR2为背景。Math.floor为向下取整函数,获取小于等于指定数值的最大整数。

3764670b4e72669430f48828ca27a8e8.png

7. 设置完毕,点击预览按钮,在浏览器中查看原型。

案例2:音量调节器

1. 从元件库拖动喇叭图标、矩形、圆至设计区域,为矩形和圆设置填充色,调整好矩形和圆的尺寸,调整时,注意圆的高度大于矩形的高度。将矩形命名为“音量杆”。

4ba28eefbe80c97b1134a884e2fb43a8.png

2. 选中圆,鼠标右键单击选择命令“转换为动态面板”,动态面板命名为“调节球”。选中动态面板,点击【新建交互】按钮,选择【拖动时】事件,选择【移动】动作,设置调节球沿水平直线移动,设置调节球移动边界,左侧大于音量杆的水平坐标,右侧小于音量杆的水平坐标+音量杆的宽度。移动边界的表达式为左侧>[[LVAR1.x]],右侧<[[LVAR1.x+LVAR1.width]],其中变量LVAR1为音量杆。

d9c3cbcc294ffe5a9b8b802df69dafe8.png
e4175e5d866e7c8013eed7f894556dfe.png
6e0f39d85ec90afcc2bf736d4dd79396.png

3. 设置完毕,点击预览按钮,在浏览器中查看原型。

案例3:轮播图

1. 拖拽动态面板元件至设计区域,双击动态面板,进入编辑状态。为面板添加3个状态,并且为每个状态分别导入一张同样尺寸的图片。

dd3d4601327fa19df724d3c896e853d7.png

2. 选中动态面板,点击【新建交互】按钮,选择【载入时】事件,选择【设置面板状态】动作。选择当前元件,状态设置为下一项,勾选向后循环,进入和退出动画选择向左滑动,动画时间为500毫秒,循环间隔设置为2000毫秒,点击“完成”按钮。

8e052d661d8c4f320f0df141918552b6.png

3. 设置完毕,点击预览,在浏览器中查看原型


写在末尾

感谢大家的耐心阅读,如果你有兴趣学习原型设计或Axure交互设计,不妨关注下我的新书《Axure RP9实用教程:原型+高保真+交互+设计》马上就要上市了,这是我十年来作为产品经理的实战经验总结。这本书由浅入深讲解了Axure RP9的基础功能,讲解过程中结合具体的案例帮助大家加深对元件交互功能的理解。最后两个章节,都是满满的干货案例,旨在通过具体的元件交互案例和页面制作案例,帮助大家找到Axure RP9的交互使用场景,同时也是检查并巩固理论学习的过程。读完这本书,你一定能够轻松驾驭Axure这款工具的使用,绝对物超所值。下图是本书的封面及目录结构。

3a1dfa678c61d62da6105cbd013b100c.png
60b214fcf2c3334d007b119b4dd95f03.png
be97deaff0fd2c9fe1431ddbdaaf41e4.png

本书在京东商城、当当网均有销售,当然您也可以关注我的专栏学习Axure RP9教程。



推荐阅读
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 本文介绍了一种图片处理应用,通过固定容器来实现缩略图的功能。该方法可以实现等比例缩略、扩容填充和裁剪等操作。详细的实现步骤和代码示例在正文中给出。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • Python的参数解析argparse模块的学习
    本文介绍了Python中参数解析的重要模块argparse的学习内容。包括位置参数和可选参数的定义和使用方式,以及add_argument()函数的详细参数关键字解释。同时还介绍了命令行参数的操作和可接受数量的设置,其中包括整数类型的参数。通过学习本文内容,可以更好地理解和使用argparse模块进行参数解析。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文介绍了如何按需加载elementui的部分模块,以及如何设置覆盖某些属性。通过import引入Dialog模块,并使用Vue.component进行全局设置。同时使用Vue.use引入ElementUI和VueAxios模块。通过extends进行属性覆盖设置。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
author-avatar
流年时光云
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有