iOS-星球沿橢圓軌跡旋轉(zhuǎn)

先看效果:


QQ20171222-170814-HD.gif

什么?太模糊!
來一張高清無碼

圖片.png

背景旋轉(zhuǎn)

    CABasicAnimation *animation =  [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
    //默認(rèn)是順時(shí)針效果,若將fromValue和toValue的值互換,則為逆時(shí)針效果
    animation.fromValue = [NSNumber numberWithFloat:0.f];
    animation.toValue =  [NSNumber numberWithFloat: M_PI *2];
    animation.duration  = 200;
    animation.autoreverses = NO;
    animation.fillMode =kCAFillModeForwards;
    animation.repeatCount = MAXFLOAT; //如果這里想設(shè)置成一直自旋轉(zhuǎn),可以設(shè)置為MAXFLOAT,否則設(shè)置具體的數(shù)值則代表執(zhí)行多少次
    [ self.bgImaegview.layer addAnimation:animation forKey:nil];

星星的閃爍

-(CABasicAnimation *)opacityForever_Animation:(float)time
{
    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"opacity"];//必須寫opacity才行。
    animation.fromValue = [NSNumber numberWithFloat:1.0f];
    animation.toValue = [NSNumber numberWithFloat:0.0f];
    animation.autoreverses = YES;
    animation.duration = time;
    animation.repeatCount = MAXFLOAT;
    animation.removedOnCompletion = NO;
    animation.fillMode = kCAFillModeForwards;
    animation.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];///沒有的話是均勻的動(dòng)畫。
    return animation;
}

軌跡動(dòng)畫

   CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
        pathAnimation.calculationMode = kCAAnimationPaced;
        pathAnimation.fillMode = kCAFillModeForwards;
        pathAnimation.removedOnCompletion = NO;
        pathAnimation.repeatCount = CGFLOAT_MAX;
        pathAnimation.duration = 30.0;
        CGMutablePathRef ovalfromarc = CGPathCreateMutable();
        CGAffineTransform t2 = CGAffineTransformConcat(CGAffineTransformConcat(                                                                 CGAffineTransformMakeTranslation(-origin_x,-origin_y),                                                                             CGAffineTransformMakeScale(1, radiuscale)),                                                      CGAffineTransformMakeTranslation(origin_x, origin_y));
        CGPathAddArc(ovalfromarc, &t2, origin_x, origin_y, radiusX,beginAng,endAng, 0);
        pathAnimation.path = ovalfromarc;
        CGPathRelease(ovalfromarc);

繪制橢圓

    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSaveGState(context);
    UIBezierPath *arc = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(20+40, 25, SCREEN_WIDTH-40,SCREEN_WIDTH/2-50)];
    [COLOR(147.f, 151.f, 157.f,0.5f)  setStroke];
    [arc stroke];
    CGContextRestoreGState(context);

下面是demo地址
鏈接: https://pan.baidu.com/s/1bp4jHWr 密碼: 5mt6

感謝作者:秋雨W
http://www.itdecent.cn/p/d8cc02e7efa7

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,291評論 25 708
  • 1.昨天晚上小寶睡覺嫌熱還是怎么著,一晚上不停哼唧,折騰到快五點(diǎn)才睡,所以,早上老公跟爸媽起床回老家,我一點(diǎn)動(dòng)靜也...
    華麗的美麗麗閱讀 229評論 0 0
  • 初出茅廬,敗于無知 巳時(shí)一刻,數(shù)不清的人影從街道盡頭趕來。擂臺(tái)上烏云密布,多空劍拔弩張。 他掏出秘籍,略略一看,大...
    投資人六便士閱讀 418評論 0 1
  • 對于我們個(gè)人來說, 最重要的是什么? 成功?金錢?權(quán)利?名聲?愛情?安全感?幸福感? 我認(rèn)為都不是,當(dāng)然,這些都很...
  • 窗外風(fēng)景獨(dú)好,誰牽掛,竊竊語,默思量,仰望蒼穹,低頭無語,淚滴,情殤。
    彭軼群閱讀 375評論 2 2

友情鏈接更多精彩內(nèi)容