首页 > 代码库 > (原)IOS之Metro实现,拥有windows磁帖效果(二 设计思路)

(原)IOS之Metro实现,拥有windows磁帖效果(二 设计思路)

(原)IOS之Metro实现,拥有windows磁帖效果(二 设计思路)

  在上一篇博客(IOS之Metro实现,拥有windows磁帖效果(一 动画效果的实现)中主要阐述了动画内容。这篇主要阐述功能的设计。

  所有转出博客园,请您注明原文出处:http://www.cnblogs.com/xiaobajiu/p/4106663.html

  考虑到metro控件的功能主要属性如下:

  1.提供当前是否正在动画的属性。当metro正在动画的时候我们可以选择性的不去响应一些事件。

  2.提供当前是否在动画事件循环中的属性。当metro停止了动画循环事件就不会再转动。这点也是非常重要的当展示metro的界面不再当前界面时,例如UITableViewCell滑出界面的时候会被回收,出于基本的性能考虑那么这个时候就不应该响应动画事件了,这个时候就可以考虑停止动画事件循环。等待metro控件再次显示的时候再次重新开启动画事件循环就可以了。

  3.提供一个看起来不好理解的属性但却非常有用,它是启动metro动画事件循环时的随机延迟时间范围。首先观察wp8或者windows8的metro,会发现每个metro旋转的时间消耗量是相同的,但是转的时候不是同一点。试想一下,如果满屏幕的metro都是相差无几的同步旋转,那样子的效果该是多么蛋疼的像广场舞一样。如果每个metro都是像独立的一个物体一样自顾自的单独旋转反而会非常有美感。当前这个属性也可以不在metro控件中提供,因为使用者也可以自己选择在不同的时刻设置metro去启动动画事件,只是会导致很多的不便。

  4.提供动画事件循环的时间间隔的属性。

  5.提供A/B面视图的延长停留时间属性。这个属性也是比较有用的。因为有时候需要快速的展示次要信息的时候,次要信息面不需要和主要信息的一面占据相同的展示时间那么可以使用这个属性,单独设置一面的延长停留的时间。设置这个属性的时候一般还配合设置动画事件循环的时间间隔的属性,来调节到满意的效果。

  6.主题色。观察wp8和windows8容易发现主题色的存在。设置该属性之后其中的图片的透明的部分就会展示出该主题色。

  主要功能方法提供如下:

  1.添加一面视图的方法。视图最多两张。

  2.移除索引处的一面视图的方法。效果立即呈现。

  3.使用新视图替换索引处老视图的方法,效果立即呈现。

  4.使用新视图替换索引处老视图的方法,当要呈现的视图旋转到背面的时刻执行操作。

  5.启动metro动画事件循环的方法

  6.停止metro动画事件循环的方法。只是停止事件循环,不会立即停止metro正在执行的动画。

  7.暂停metro动画的方法。不会停止metro动画时间循环。

  8.恢复metro动画的方法。(在暂停metro之后)

  9.设置A/B面的旋转动画的时长的方法。

  10.点击metro后(TouchUpInside)触发事件的设置的方法。该方法会在metro点击倾斜动画执行完后才触发。优化体验。

  11.为metro添加绑定触摸事件,应该避免使用系统提供的方法:addTarget:action:forControlEvents:。

  12.获取当前视图所在index

 

  简单的使用如下:

QMetro *metro= [[QMetroalloc] initWithFrame:CGRectMake(27, 20, width, width)];[metro addView:imgView1];[metro addView:imgView2];[metro beginMetro];//启动metro

  下载地址

  如有错误请朋友指正,以免误人子弟。

(原)IOS之Metro实现,拥有windows磁帖效果(二 设计思路)