标签云用作对一些东西的标记;
一般像一些电影类,读书类app的搜索页面有用到;
标签云有很多的表现形式;
主要实现原理是:
1.创建出子视图button
2.定时器实时刷新子视图的位置
3.随着手指的移动,每个子视图也随着移动,给每个子视图一个随机的速度系数,子视图移动的速度就不一样
下面我写的是一个比较简单的标签云的DEMO:
这是运行出来的效果图,上边的数字是一个一个的小按钮,可以响应点击事件,可以随手势以不同的速度移动;
首先,创建了一个UIView的子类CloudView,UIButton的子类CloudButton,并给CludeView添加了一个自定义初始化方法(如下:),初始化方法中需要传入一个由CludeButton组成的数组,作为CloudView的子视图显示;
在CloudView中定义了4个属性,当作是其中子视图的活动范围;
在CloudView的初始化方法中,给子视图一个随机的坐标显示
并且开启定时器,及时刷新子视图的位置,下图为刷新子视图的方法,并且在子视图超出父视图的范围的时候,改变子视图的位置,
然后是让子视图的速度系数递减,直至停止滑动
在- (void) touchesmoved方法中计算出每个子视图移动的距离,让距离乘以一个随机的速度系数
整个程序大概就是这样。。。