objective-c - 在 UIBezierPath addLineToPoint 的末尾运行一些代码

标签 objective-c ios xcode

我正在尝试在 UIBezierPath 动画的 addLineToPoint 完成后运行一些脚本。

这是我的一段代码

    UIBezierPath *path = [UIBezierPath bezierPath];

    CGRect pathRect = CGRectInset(self.animationLayer.bounds, 0.0f, 0.0f);    
// define cgpoint
    CGPoint number1 = CGPointMake(CGRectGetMinX(pathRect), CGRectGetMaxY(pathRect));
    [path addLineToPoint: number1];

在这里我找到了 UIBezierClass 的引用,但我找不到任何指示动画 addLineToPoint 完成的指示符。提前致谢。
http://developer.apple.com/library/ios/#documentation/uikit/reference/UIBezierPath_class/Reference/Reference.html

最佳答案

addLineToPoint中不涉及动画.构造 UIBezierPath 的所有其他方法也是如此。

如果您查看文档,您正在谈论的方法在“ 构造路径”部分下。它所做的只是在模型中的点添加一条线(它甚至还没有在屏幕上绘制)。

您可以通过调用 fill 绘制整个贝塞尔路径或 stroke在它里面一个drawRect:某些 View 的方法,但这也不会为任何东西设置动画。

在我看来,您既要为该路径的描边设置动画,又要在完成后获得回调。如果是这样,您应该创建一个 CAShapeLayer 并将您的贝塞尔路径分配给它的路径属性。然后你可以通过动画 strokeEnd 来动画那个形状层的描边。属性从 0 到 1。如果您将自己配置为该动画的代理,那么您将获得 animationDidStop:finished:动画完成后回调。

关于objective-c - 在 UIBezierPath addLineToPoint 的末尾运行一些代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13317330/

相关文章:

ios - CloudKit:将容器环境从开发切换到生产

android - 我应该使用什么来托管视频以在我的移动应用程序中进行流式传输

ios - 如何使用百分比调用方法

objective-c - NSURL 不带 %

iphone - 使用多个对象对 NSMutableArray/Dictionary 进行排序

ios - dispatch_once 对简单的 NSArray 有帮助吗?

objective-c - 结束在辅助线程中运行的 while 循环?

iphone - 如何使用网页 View 作为页面( subview )制作无缝 ScrollView

ios - Pubnub 以单流方式获取组中所有 channel 的所有消息

android - Facebook 登录,哈希键问题 - Flutter,如何在 flutter 中生成 Facebook Hashkey?