昨天刚吐槽TabBar,今天就要用到Axure制作一个TabBar了..
比较麻烦的是,为了实现高保真的交互视觉合一模型,我需要加入切好的图片。
【错误的尝试】
- 建立一个Master并取名为TabBar,这是为了在多界面间实现统一调用
- 拖入三个Image类的Widgets,分别Convert to Dynamic Panel,这是为了实现触发和未触发时的状态切换
- 每个Dynamic Panel设置两个State,分别拖入对应的Image
- 一切准备就绪,然后开始绑定事件,比如对Tab1,对它的OnClick交互绑定事件Set Tab1 to 1, Tab2 to 0, Tab3 to 0,Open View1 in Current Window,其余同理
- Preview的时候发现,当切换Page的时候,Master-Dynamic Panel的状态被重置了,并没有保持原来的状态
【官方教程】
查找解决方法的时候,看到了一篇实现Tab切换的官方教程,戳→Tab Control
它实现Tab Control的思路是用Rectangle作为Tab的背景,然后设置它的selected style,然后把它们合并成组,绑定OnClick事件为改变Selected属性
遗憾的是Rectangle暂时不支持以图片为背景的替换,戳→Fill a widget (rectangle, text box …) with a repeated background image
【解决方法一】
我想到的第一个解决方法是把三个View分成三个Page来做,每次在OnPageLoad的时候改变Dynamic Panel的State。这个方法确实可以实现一开始的目标。但是因为三个View被分成了三个Page来做,Page之间切换的时候不能实现交互动画,而且会出现明显的卡顿感。。在每个Page里都要重新绘制一次全局元素,非常麻烦和不优雅。
【解决方法二】
我想到的第二个解决方法是使用global variables,使用变量来记录目前Tab的状态,不管是把内容放在一起还是分成page,都比较容易,思路清晰
Axure做web还行,做客户端真是有些麻烦呢。。
先传个图,到时候做完了再把项目Po上来好了如果可以的话