objective-c - UIBezierPath - 动画填充

标签 objective-c ios uiview core-animation

我有一个增量构建的 UIBezierPath(一个圆圈):

[circlePath addArcWithCenter:clockCenter radius:radius startAngle:angleRadians endAngle:1.5*M_PI clockwise:YES];
...
[circlePath closePath];
[COLOR_CIRCLE setFill];
[circlePath fill];

有时,我想对填充进行动画处理,以便在一秒钟内完全填充并遵循构建时的路径(顺时针方向)。完成此任务的首选方法是什么?现在我正在考虑 Core Animation,但我希望有一个 fill:withDelay 或一些我没有偶然发现的东西。 TIA。

最佳答案

你可以试试这个:

创建一个 CAShapeLayer,其 path 设置为您的形状。使用这个 CAShapeLayer 作为另一个图层的蒙版,你可以在其中绘制一个填充的圆弧/圆。然后将圆弧/圆弧角度从 0º 设置为 360º。这可能接近您想要的效果。

我找不到一种“内置”方式来根据需要为填充设置动画。但是,有一种内置的方法可以为笔画设置动画:

使用带有 CAShapeLayer 支持的 UIView。 CAShapeLayer 有一个 path 属性。然后,您可以将动画应用到图层的 strokeStart 和/或 strokeEnd 属性。

关于objective-c - UIBezierPath - 动画填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11423896/

相关文章:

objective-c - 如何强制核心数据从模型创建 Sqlite 数据库*之前*任何数据都保存在应用程序中?

iphone - 判断是否在 iPhone 或 iPad 上运行的 API

ios - 使 UITabBarItem 项目之一在 UITabBarController 中没有 View

ios - 为什么 SKSpriteNode 子类在没有编码的情况下工作(带有 :)

swift - 如何在后台继续动画和uitimer

c++ - 如何在 iPhone 上使用 LAME 编码为 .mp3 时显示进度条?

ios - 如何使用 NSUserDefault 将选定的 TableViewCell 文本发送到之前的 ViewController

ios - 重复淡入淡出效果不起作用

ios - 在 UIView 中拖动 UILabel 并维护其新坐标

ios - 要求允许在 iOS 应用程序中使用当前位置的警告窗​​口不会让用户有机会在 "don' t 允许“和 "OK"之间进行选择