在视图表面(类似于附加的图像)(不仅仅是视图边界)上实现自定义转换(+动画)的方法是什么。
问题主要在于这样做的一般方法是什么(不完全是“水滴效应”,但肯定会赞赏任何例子)。我想,这是图层布局“网格”的一些“算法”转换,但不确定以哪种方式“挖掘”它。
(另一个想法是可以通过使用一些框架来实现,但是,我仍然需要了解核心逻辑)。
更新:
最近从答案之一中找到了对动画爱好者来说非常好的资源:iPhone Development Wiki。
在视图表面(类似于附加的图像)(不仅仅是视图边界)上实现自定义转换(+动画)的方法是什么。
问题主要在于这样做的一般方法是什么(不完全是“水滴效应”,但肯定会赞赏任何例子)。我想,这是图层布局“网格”的一些“算法”转换,但不确定以哪种方式“挖掘”它。
(另一个想法是可以通过使用一些框架来实现,但是,我仍然需要了解核心逻辑)。
更新:
最近从答案之一中找到了对动画爱好者来说非常好的资源:iPhone Development Wiki。
阅读 Bartosz Ciechanowski 的这篇出色的博客文章:
http://ciechanowski.me/blog/2014/05/14/mesh-transforms/
总结一下:Apple 使用私有 API 围绕一个名为“CAMeshTransform”的类执行此操作。
作者提出了一个自写的替代品:
https://github.com/Ciechan/BCMeshTransformView
这真的很神奇!
你可以使用这个:
- (void)drawWaterRippleAnimation {
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(200, 200, 100, 100)];
view.backgroundColor = [UIColor blueColor];
CATransition *animation=[CATransition animation];
[animation setDelegate:self];
[animation setDuration:1.75];
[animation setTimingFunction:UIViewAnimationCurveEaseInOut];
[animation setType:@"rippleEffect"];
[animation setFillMode:kCAFillModeRemoved];
animation.endProgress=1;
[animation setRemovedOnCompletion:NO];
[self.view.layer addAnimation:animation forKey:nil];
}
学分到这里。