没图说个毛啊 所以我先给各位上效果图
因为我用的录制GIF的工具可能垃圾了一点,录制的GIF和实际demo效果有些出入,建议将demo下载下来看看实际的演示效果。进入app首先看到的动画是,一个TableView像瀑布流水从高处往下的感觉。关键代码如下
然后再滑动tableview的时候 ,新创建的cell在出现在屏幕是以后水面涟漪的感觉,给人的感觉是tableview整个就想一个湖面,滑动一下就是波光粼粼。
这个水面涟漪的效果就是使用POP动画 在cell高亮和非高亮的情况下 缩放label形成的视觉差。
在这里强调一个知识点,相信很多人都没有注意过这个细节
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated;
- (void)setSelected:(BOOL)selected animated:(BOOL)animated;
这两个方法一个是设置cell的高亮状态,另一个是设置cell的选中状态,我们只需要在这两个方法里面打印信息就可以看出点击cell时这些状态是怎么变化的了。当我们点击cell的时候,其实是先设置cell的高亮状态为YES,然后松手的时候再将cell的高亮状态设置为NO,接着才是设置cell的选中状态为YES,最后才会去调用delegate中的tableview:didSelectRowAtIndexPath:方法。
demo中使用了很多分类,目的是为了给对象设置属性的使用效率更快 比如tableview中的红色的数字标签和title 的颜色 字体 关键代码如下
Demo:github.com/huxiao123/POPAnimation.git
网友评论