美文网首页
局部纵向和横向滚动-股票

局部纵向和横向滚动-股票

作者: darling323 | 来源:发表于2016-04-29 10:32 被阅读314次

    局部纵向和横向滚动-股票

    素材清单

    detail1.png detail2.png detail3.png

    涉及的技能

    1. 动态面板的叠加嵌套
    2. 交互事件:OnSwipeLeft,OnSwipeRight。

    案例效果

    本例模拟iOS 的 股票app,上部的股票列表可以上下拖动,下部的详细信息可以左右拖动换屏显示不同类型信息。

    效果.gif

    移动链接如下:
    局部纵向和横向滚动

    简明步骤

    1. 主界面布局。
    2. 添加股票名称中的热区,让详细信息随着股票名称变化。
    3. 股票列表的上下拖拽。
    4. 详细信息的动态交互。

    具体步骤及说明

    1. 主界面布局。

    1.新建一个项目,命名为“局部纵向和横向滚动”。

    2.添加动态面板dpStock作为股票列表的显示,参数如下:

    | 名称 | 类型 | 坐标 | 尺寸 |
    | ------------ | ------------- | ------------ |
    | dpStock | Dynamic Panel | 0,0 | 414,400 |

    3.添加动态面板dpDetail作为股票明细信息的显示,参数如下:

    | 名称 | 类型 | 坐标 | 尺寸 |
    | ------------ | ------------- | ------------ |
    | dpDetail | Dynamic Panel | 0,400 | 414,296 |

    4.添加动态面板dpFooter作为 底部提示信息的显示,参数如下:

    | 名称 | 类型 | 坐标 | 尺寸 |
    | ------------ | ------------- | ------------ |
    | dpFooter | Dynamic Panel | 0,696 | 414,40 |

    5.在dpStock的 state1中添加动态面板dpStockList作为股票列表的上下滚动容器,高度比dpStock的高度400略大,能够有上下滚动的空间即可,这里设置为500,参数如下:

    | 名称 | 类型 | 坐标 | 尺寸 |
    | ------------ | ------------- | ------------ |
    | dpStockList | Dynamic Panel | 0,0 | 414,500 |

    6.参考素材截图.png中的上部分股票列表,在dpStockList中制作股票列表模拟界面。这里面用一个黑色矩形作为背景,坐标和尺寸为(0,0,414,500)。文本标签文字设置为白色,字号18,显示股票代码和价格点数,红色和绿色圆角矩形作为涨跌幅。

    screen1.PNG

    7.在dpDetail的 state1中添加详细信息的第一屏,可以继续参考上图。这里可以直接使用截屏的图片资源detail1.png,拖到动态面板中去,坐标和尺寸为(0,40,414,256)。上面还是40高度的空白,使用 label 控件,坐标和尺寸为(0,0,414,40),字体18号居中,背景为黑色,并命名为lbCompany,显示他们的股票名。

    8.在dpDetail中添加 state2和 state3,由于没有功能性的控件需求,我们也直接使用截图代替,分别在两个 state 中拖入2个图片资源detail2.pngdetail3.png,坐标和尺寸都为(0,0,414,296)。

    9.在dpFooter中添加黑色背景和3个圆形小按钮,模拟 PageControl控件,仍然参考screen1.png。3个圆形小按钮可以用矩形或者按钮控件制作。拖入矩形后,右键选择select shape,选择eclipse,然后分别设置这三个圆形的坐标和尺寸为(170,13,10,10),(201,13,10,10),(232,13,10,10),可以用上下左右微调位置,用aligndistribute工具调整相对位置。

    布局基本结束。widget manager 的截图如下:

    widget.png

    2. 添加股票名称中的热区,让详细信息随着股票名称变化。

    1.在dpStock的 state1里面,DOW J 和 AAPL 两个股票指数位置,我们拖拽2个HotSpot热区控件,让这两个股票可以接受点击的交互操作。为了简单起见,我们只做这两个股票的响应。在这两个热区控件上添加交互用例,添加OnClick事件,实现显示公司名的lbCompany根据我们点击的股票名变化。

    2.选中DOW J的热区,在交互窗口添加OnClick事件,在用例编辑器中选择Set Text,在右侧窗口中找到前述显示公司名的标签lbCompany打钩,右下角的 value为DOW J,确定,如下图:

    case1.png

    3.选中AAPL的热区,同上方法添加用例如图:

    case2.png

    4.预览,点击这两个带热区的股票,下面详细信息中的公司名会跟随变化。

    3. 股票列表的上下拖拽。

    1.添加 dpStockList 的拖动交互。在dpStock的 state1里面, 选择dpStockList添加OnDrag 事件,选择MovedpStockList,在 y 轴方向拖动,如下图:

    case3.png

    2.添加 OnDragStop 事件来避免拖动出界。结果如下图:

    case4.png case5.png

    当 this.y 大于0时,是向下拖动到顶的情况,这时应该将股票列表的坐标初始化到(0,0),这里还加入了500ms 的线性动画延时效果。
    当 this.y 小于0时,是向上拖动到底的情况,这时我们应该将股票列表恢复到底部,y 坐标应该是400(dpStock 的高)-500(dpStockList 的高)。

    4. 详细信息的动态交互。

    1.详细信息支持左右滑动的交互,在 dpDetail 的3个状态间切换。

    另外,还需要加一个白色圆形按钮,命名为 rectDot作为当前页的标志。我们在 home 页面添加,从dpfooter 里面复制出来即可,换成白色,坐标和尺寸为(170,400+296+13,10,10),先跟3个圆形按钮中的第一个重合,而那3个圆形按钮应设置成灰色以示区别。

    2.在 home 页面中选中dpDetail,添加OnSwipeLeftOnSwipe Right事件。

    编辑 case1的条件,如果当前的状态不是第三个,则向左移动 dpDetail 到下一个状态, 选中wrap from last to first,表示第三个过后的下一个状态是回到第一个。进入和淡出的动画效果为slide In500ms和Slide out500ms。如图:

    case6.png case7.png

    另外,还要移动rectDot,向右移动31(3个圆形按钮之间的距离)。如图:

    case8.png

    3.编辑 case2的条件,双击OnSwipeLeft,跟 case1的设置一样。不同之处在对rectDot,当到达最后一个圆形按钮继续右移,会回到第一个。如图:

    case9.png

    4.这里还要对前面两个热区的交互做出修改,当点击热区更换股票的时候,详细信息要回到state1。设置如图:

    case10.png

    另外,还要将白色的圆形按钮还原到第一个位置,坐标(170,400+296+13)。如图:

    case11.png

    5.同法添加dpDetail的OnSwipe Right事件,通过复制粘贴再修改也行。

    最后交互的结果如图:

    case12.png case13.png case14.png case15.png

    相关文章

      网友评论

          本文标题:局部纵向和横向滚动-股票

          本文链接:https://www.haomeiwen.com/subject/qhghrttx.html