最近功能性的需求都做完了,然后ui/ue开始发力了。。。。开始了各种动画的需求,摔!!!虽然吐槽,但还是还是得完成啊不是。
就把我们app里面用的到一些动画相关的东西介绍总结一下吧。
1.pop是facebook开源的一个动画相关的三方(facebook 出品,必属精品~~)。在该框架里面提供了很多的动画效果可以选择,在我们的app里基本只是用了它的 POPSpringAnimation
即弹性动画。
这个弹性动画我们在很多地方都有用,简单地给一个例子,点击缩放的弹出一个提示框
这个提示框用的就是popPOPSpringAnimation
来做弹出时的弹簧效果的。
简单地代码如下
#pragma mark -
#pragma mark pop animate
- (void)scaleAnimation {
if (self.isScaleAnimaing) {
return;
}
self.isScaleAnimaing = YES;
POPSpringAnimation *scaleAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPLayerScaleXY];
scaleAnimation.velocity = [NSValue valueWithCGSize:CGSizeMake(1.f, 1.f)];
scaleAnimation.toValue = [NSValue valueWithCGSize:CGSizeMake(1.f, 1.f)];
scaleAnimation.springBounciness = 10.0f;```
[scaleAnimation setCompletionBlock:^(POPAnimation *animation, BOOL finished){
self.isScaleAnimaing = NO;
self.mainContentView.hidden = NO;
}];
[self.mainContentView.layer pop_addAnimation:scaleAnimation forKey:@"layerScaleSpringAnimation"];
}
2.第二个花了比较久时间的动画就是下方的cell出现时的动画,如下图(ps:顺便问下,有没有不错的制作gif图的app,现在这个用着不是很好,gif太大就做不了,所以做了两张小的来展示效果)
这样看gif效果不是很好,但在真机上效果还是不错的。
当时看到ui需要的效果之后,脑袋有点空,再瀑布流的collectionView上加这种效果,我的内心是崩溃的。不过做还是得做,先想到的是cellWillDisplay的时候给cell加一个移动的动画,看了一下官方的cellWillDisplay方法,ios8及ios8之后才能用,放弃。最后只有在
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath;这个方法里做了一些判断之后,达到了这种效果。
有更好方法的可以互相探讨。