UIView表面自定义转换/动画(例如'水滴效果')

时间:2013-07-29 15:52:06

标签: ios objective-c animation transformation

视图表面上实施自定义转换(+动画)的方法是什么(类似于附加的图片)( 只是 视图边界 )。

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

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

更新

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

transformation sample 1 transformation sample 2

2 个答案:

答案 0 :(得分:5)

阅读Bartosz Ciechanowski撰写的这篇优秀博客文章:

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

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

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

https://github.com/Ciechan/BCMeshTransformView

实际上真是太神奇了!

答案 1 :(得分: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];
}

积分转到here