Little April Fool

Axure实现带图片的多路选择器

昨天刚吐槽TabBar,今天就要用到Axure制作一个TabBar了..

比较麻烦的是,为了实现高保真的交互视觉合一模型,我需要加入切好的图片。

【错误的尝试】

  1. 建立一个Master并取名为TabBar,这是为了在多界面间实现统一调用
  2. 拖入三个Image类的Widgets,分别Convert to Dynamic Panel,这是为了实现触发和未触发时的状态切换
  3. 每个Dynamic Panel设置两个State,分别拖入对应的Image
  4. 一切准备就绪,然后开始绑定事件,比如对Tab1,对它的OnClick交互绑定事件Set Tab1 to 1, Tab2 to 0, Tab3 to 0,Open View1 in Current Window,其余同理
  5. 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上来好了如果可以的话

preview.jpg