用于计时器动画的CABasicAnimation在iOS 8+上不起作用

拜特罗斯

几年前,我已经使用此代码实现了计时器动画。是一个可爱的动画,但不适用于iOS8>

应该会出现一个圆圈,并且每隔0.1秒就会丢失一个饼,但动画不会开始。它可以在我的iPhone 5 iOS 7.1上使用

我试图解决它,但2小时后我没有解决方案。

可以在CABasicAnimation方面有更多经验的人可以帮助我吗?

谢谢你。

这是代码:

    //Animazione CRONOMETRO
-(void) startCronometro{

    //SetTime
    counterStart = TIME;

    [sfondoCronometro setImage:[UIImage imageNamed:@"cronoStart.png"]];

    maskLayer = [CAShapeLayer layer];

    CGFloat maskHeight = sfondoCronometro.frame.size.height;
    CGFloat maskWidth = sfondoCronometro.frame.size.width;


    CGPoint centerPoint;
    centerPoint = CGPointMake(sfondoCronometro.frame.size.width/2, (sfondoCronometro.frame.size.height/2));

    //Make the radius of our arc large enough to reach into the corners of the image view.
    CGFloat radius = sqrtf(maskWidth * maskWidth + maskHeight * maskHeight)/2;

    //Don't fill the path, but stroke it in black.
    maskLayer.fillColor = [[UIColor clearColor] CGColor];
    maskLayer.strokeColor = [[UIColor blackColor] CGColor];

    maskLayer.lineWidth = 25;

    CGMutablePathRef arcPath = CGPathCreateMutable();

    //Move to the starting point of the arc so there is no initial line connecting to the arc
    CGPathMoveToPoint(arcPath, nil, centerPoint.x, centerPoint.y-radius/2);

    //Create an arc at 1/2 our circle radius, with a line thickess of the full circle radius
    CGPathAddArc(arcPath, nil, centerPoint.x, centerPoint.y, radius/2, 3*M_PI/2, -M_PI/2, NO);

    maskLayer.path = arcPath;//[aPath CGPath];//arcPath;

    //Start with an empty mask path (draw 0% of the arc)
    maskLayer.strokeEnd = 0;

    CFRelease(arcPath);

    //Install the mask layer into out image view's layer.
    sfondoCronometro.layer.mask = maskLayer;

    //Set our mask layer's frame to the parent layer's bounds.
    sfondoCronometro.layer.mask.frame = sfondoCronometro.layer.bounds;

    //Create an animation that increases the stroke length to 1, then reverses it back to zero.
    CABasicAnimation *swipe = [CABasicAnimation animationWithKeyPath:@"strokeEnd"];
    swipe.duration = TIME;
    NSLog(@"TIME: %f", swipe.duration);
    swipe.delegate = self;
    // [swipe setValue:@"string" forKey:@"key"];
    swipe.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
    swipe.fillMode = kCAFillModeForwards;
    swipe.removedOnCompletion = NO;
    swipe.toValue = [NSNumber numberWithFloat: 1.0];

    [maskLayer addAnimation: swipe forKey: @"strokeEnd"];

}
邓肯

我似乎记得在某些时候CGPathAddArc的功能发生了变化,并且根据开始和结束角度的值,您必须在调用时翻转顺时针标志。尝试使用顺时针= YES。

我只是在我的一个应用程序中做了一些测试,并确认了这一点。对于您使用的角度,顺时针NO不适用于iOS <= 7,但不适用于iOS> = 8。

将最后一个参数从“否”切换为“是”。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

FileReader在iOS 8上不起作用

来自分类Dev

SDWebImage在iOS 8上不起作用

来自分类Dev

Testflight在iOS 8上不起作用

来自分类Dev

UITableViewAutomaticDimension在iOS 8上不起作用

来自分类Dev

SDWebImage在iOS 8上不起作用

来自分类Dev

DojoX滑块在iOS 8 / Safari 8上不起作用

来自分类Dev

Xamarin.iOS NSUrlSession在iOS 8上不起作用

来自分类Dev

Xamarin.iOS NSUrlSession在iOS 8上不起作用

来自分类Dev

UITableView中的UIPanGestureRecognizer在iOS8上不起作用

来自分类Dev

约束常量更新在iOS 8上不起作用

来自分类Dev

iOS 8 Today Extension在设备上不起作用

来自分类Dev

UIActivityViewController在iPad上不起作用?iOS 8

来自分类Dev

iOS 8推送通知在实际设备上不起作用

来自分类Dev

声音在Debian 8服务器上不起作用

来自分类Dev

为什么BIOS中断8(计时器)在qemu-system-x86_64上不起作用

来自分类Dev

IOS8 Blur在iPad视网膜模拟器上不起作用

来自分类Dev

单击在iOS 8模拟器[Xcode 6.0.1]上不起作用

来自分类Dev

锁定方向在ipad ios 8 swift xcode 6.2上不起作用

来自分类Dev

window.close()在iOS 8 GM种子上不起作用

来自分类Dev

与长度值垂直对齐在iOS 8上不起作用

来自分类Dev

websocket在tomcat 8上不起作用

来自分类Dev

动画在Ellipse上不起作用

来自分类Dev

动画在FXMLController上不起作用

来自分类Dev

使用第三方IME时,JS keydown keyup keypress事件在IOS8上不起作用

来自分类Dev

MPMoviePlayerViewController在iOS 7上不起作用

来自分类Dev

VideoJS:在IOS上不起作用

来自分类Dev

swfobject在iOS上不起作用

来自分类Dev

removeClass在iOS上不起作用

来自分类Dev

Netbeans 6.9.1在Windows 8上不起作用

Related 相关文章

热门标签

归档