7

在视图表面(类似于附加的图像)(不仅仅是视图边界)上实现自定义转换(+动画)的方法是什么。

问题主要在于这样做的一般方法是什么(不完全是“水滴效应”,但肯定会赞赏任何例子)。我想,这是图层布局“网格”的一些“算法”转换,但不确定以哪种方式“挖掘”它。

(另一个想法是可以通过使用一些框架来实现,但是,我仍然需要了解核心逻辑)。

更新:

最近从答案之一中找到了对动画爱好者来说非常好的资源:iPhone Development Wiki

转换样本 1 转换样本 2

4

2 回答 2

6

阅读 Bartosz Ciechanowski 的这篇出色的博客文章:

http://ciechanowski.me/blog/2014/05/14/mesh-transforms/

总结一下:Apple 使用私有 API 围绕一个名为“CAMeshTransform”的类执行此操作。

作者提出了一个自写的替代品:

https://github.com/Ciechan/BCMeshTransformView

这真的很神奇!

于 2014-05-17T21:35:21.577 回答
1

你可以使用这个:

- (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];
}

学分到这里

于 2017-03-22T07:36:36.893 回答