`
beike
  • 浏览: 362166 次
社区版块
存档分类
最新评论

IOS 自带动画效果

 
阅读更多

ios view与view间切换的动画效果这篇文章中简单介绍了一种动画效果,下面我详细介绍一下ios中页面间跳转系统自带的动画效果。

动画效果可以参考:http://www.iphonedevwiki.net/index.php?title=UIViewAnimationState

下面先介绍第一组动画效果:

 

实现的代码是:

//view1中的动画 
- (IBAction)doUIViewAnimation:(id)sender{ 
    [UIView beginAnimations:@"animationID" context:nil]; 
    [UIView setAnimationDuration:10.5f]; 
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
    [UIView setAnimationRepeatAutoreverses:NO]; 
    UIButton *theButton = (UIButton *)sender; 
    switch (theButton.tag) { 
        case 0: 
            [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];//oglFlip, fromLeft 
            break; 
        case 1: 
            [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES];//oglFlip, fromRight      
            break; 
        case 2: 
            [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES]; 
            break; 
        case 3: 
            [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.view cache:YES]; 
            break; 
        default: 
            break; 
    } 
    [self.view exchangeSubviewAtIndex:1 withSubviewAtIndex:0]; 
    [UIView commitAnimations]; 
}

主要是从不同的角度产生动画。

第二组动画效果:

实现的代码:

- (IBAction)doPublicCATransition:(id)sender{ 
    CATransition *animation = [CATransition animation]; 
    //animation.delegate = self; 
    animation.duration = 10.5f; 
    animation.timingFunction = UIViewAnimationCurveEaseInOut; 
    animation.fillMode = kCAFillModeForwards; 
    //animation.removedOnCompletion = NO; 
    UIButton *theButton = (UIButton *)sender; 
    /* 
     kCATransitionFade; 
     kCATransitionMoveIn; 
     kCATransitionPush; 
     kCATransitionReveal; 
     */ 
    /* 
     kCATransitionFromRight; 
     kCATransitionFromLeft; 
     kCATransitionFromTop; 
     kCATransitionFromBottom; 
     */ 
    switch (theButton.tag) { 
        case 0: 
            animation.type = kCATransitionPush; 
            animation.subtype = kCATransitionFromTop; 
            break; 
        case 1: 
            animation.type = kCATransitionMoveIn; 
            animation.subtype = kCATransitionFromTop; 
            break; 
        case 2: 
            animation.type = kCATransitionReveal; 
            animation.subtype = kCATransitionFromTop; 
            break; 
        case 3: 
            animation.type = kCATransitionFade; 
            animation.subtype = kCATransitionFromTop; 
            break; 
        default: 
            break; 
    } 
    [self.view.layer addAnimation:animation forKey:@"animation"]; 
}

 

下面看一下第三种效果:

代码实现:

- (IBAction)doPrivateCATransition:(id)sender{ 
    //http://www.iphonedevwiki.net/index.php?title=UIViewAnimationState
    /* 
    Don’t be surprised if Apple rejects your app for including those effects, 
    and especially don’t be surprised if your app starts behaving strangely after an OS update. 
    */ 
    CATransition *animation = [CATransition animation]; 
    animation.delegate = self; 
    animation.duration = 10.5f * slider.value; 
    animation.timingFunction = UIViewAnimationCurveEaseInOut; 
    animation.fillMode = kCAFillModeForwards; 
    animation.endProgress = slider.value; 
    animation.removedOnCompletion = NO; 
    UIButton *theButton = (UIButton *)sender; 
    switch (theButton.tag) { 
        case 0: 
            animation.type = @"cube";//— 
            break; 
        case 1: 
            animation.type = @"suckEffect";//103 
            break; 
        case 2: 
            animation.type = @"oglFlip";//When subType is "fromLeft" or "fromRight", it’s the official one. 
            break; 
        case 3: 
            animation.type = @"rippleEffect";//110 
            break; 
        case 4: 
            animation.type = @"pageCurl";//101 
            break; 
        case 5: 
            animation.type = @"pageUnCurl";//102 
            break; 
        case 6: 
            animation.type = @"cameraIrisHollowOpen ";//107 
            break; 
        case 7: 
            animation.type = @"cameraIrisHollowClose ";//106 
            break; 
        default: 
            break; 
    } 
    [self.view.layer addAnimation:animation forKey:@"animation"]; 
    self.lastAnimation = animation; 
    if(slider.value == 1) 
        [self.view exchangeSubviewAtIndex:1 withSubviewAtIndex:0];//Just remove, not release or dealloc 
    else{ 
        for (int i = 0; i < [self.view.subviews count]; i++) { 
            [[self.view.subviews objectAtIndex:i] setUserInteractionEnabled:NO]; 
        } 
        isHalfAnimation = YES; 
    } 
}

以上是ios中常用的动画效果,还有一些是利用2d自己写的动画效果,关于自定义动画以后在研究。

分享到:
评论

相关推荐

    iOS自带动画效果的实例代码

    1.普通动画: [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:2]; frame.origin.x += 150; [img setFrame:frame]; [UIView commitAnimations]; 2.连续动画(一系列图像): NSArray *...

    ios动画效果

    在iOS开发中,动画效果是提升用户体验的关键因素之一。它能为用户界面带来生动性和趣味性,使得应用程序更具吸引力。本资源代码专为初级iOS开发人员设计,旨在帮助他们掌握如何在iOS应用中实现各种动画效果。以下是...

    IOS书本展示效果

    这通常涉及Core Animation和CGAffineTransform的应用,通过改变视图的transform属性,实现视图的旋转、缩放等动画效果。 3. **CATransition**: Core Animation的CATransition可以用来添加过渡效果,比如淡入淡出...

    ios-自带绘图动画的AlertView.zip

    它是由开发者JeanKit创建的一个开源库,旨在提供一种更加灵活的方式来展示具有动画效果的Alert视图。在iOS中,通常我们使用`UIAlertController`来显示警告或确认对话框,但它的样式和动画是固定的。`AlertAssemble`...

    iOS 物理 碰撞 力学 模型 iOS自带物理模型

    总的来说,iOS自带的物理模型通过SceneKit和SpriteKit为开发者提供了丰富的工具,使他们能够构建出具有真实感的物理交互体验。无论是3D游戏还是2D动画,开发者都能利用这些内置的物理引擎创造出各种动态效果,提升...

    ios-高仿苹果自带日历 Calendar 支持上下无限滑动.zip

    此外,为了达到苹果日历的视觉效果,颜色、字体和动画效果都需要精心设计和调整。 再者,项目中可能运用了`Swift`语言,这是苹果推荐的iOS开发语言,具有现代、简洁且强大的特性。开发者可能使用了`Swift`的协议...

    ios-仿网易评论加载动画.zip

    4. **UIActivityIndicatorView**:iOS自带的加载指示器控件,可以快速实现基本的加载动画。不过,为了模仿网易的样式,可能需要自定义其样式或者完全自定义动画。 5. **CADisplayLink** 或者 **NSTimer**:用于控制...

    仿ios自带滑动删除的relativelayout

    3. **动画效果**:滑动过程中,删除按钮的显示和隐藏通常会伴随着平滑的动画。这可能通过`ObjectAnimator`或`TranslationAnimation`来实现,它们可以改变视图的位置、大小或透明度,以模拟滑出或滑入的效果。 4. **...

    IOS 视图切换动画

    首先,iOS提供了多种内置的动画效果供开发者使用。例如,简单的`UIStoryboardSegue`类可以实现简单的过渡动画,如淡入淡出、推拉等。通过定义`UIStoryboardSegue`的子类并重写`perform`方法,我们可以自定义过渡动画...

    iOS Switch 控件的动画集合.zip

    这个“iOS Switch 控件的动画集合.zip”是一个开源项目,它提供了一系列定制化的Switch控件动画效果,为你的应用增添视觉吸引力。下面我们将详细探讨Switch控件的基本使用、自定义动画以及开源项目...

    IOS应用源码之Cocos2d, 自带粒子效果整理ParticleDemo.zip

    标题"IOS应用源码之Cocos2d, 自带粒子效果整理ParticleDemo.zip"揭示了我们正在处理一个iOS应用的源代码,它基于Cocos2d游戏引擎,并且包含了粒子效果的实现。Cocos2d是一个流行的游戏开发框架,尤其适用于2D游戏,...

    自带逐字打印动画效果的UILabel(iOS-OSX)(iPhone源代码)

    来源: github/CLTypingLabel Licence: MIT 作者: Liiiiin ...对此label设置文字时会自动触发打字效果。支持设置每个字体的间隔时间,以及中途暂停,继续打字功能。带demo例子代码,支持cocoapod。

    ios-物理动画.zip

    苹果在其UIKit框架中提供了一个名为Core Animation的底层系统,用于处理复杂的动画效果。虽然Core Animation主要关注图形渲染和层管理,但它也包含了一些支持物理模拟的API,例如CAKeyframeAnimation和CADisplayLink...

    iOS自带粒子系统实现的下雪动画.zip

    操作系统:LInux、IOS、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。 网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络...

    ios各种翻页效果总结

    本文将全面总结iOS系统自带的各种翻页效果,帮助开发者们更好地理解和运用这些技术,创造出更加生动、自然的应用界面。 一、UIPageViewController UIPageViewController是苹果官方提供的一个用于实现页面浏览的控制...

    ios7 自带的二维码扫描

    本文将详细探讨iOS 7自带的二维码扫描功能,以及如何在应用中利用AVFoundation框架进行集成。 首先,我们要了解AVFoundation框架。AVFoundation是Apple提供的一个强大的多媒体处理框架,它涵盖了音频、视频的播放、...

    tableview刷新动画

    而“tableview刷新动画”则是为了给用户带来更好的交互体验,当数据更新时,通过动画效果来提示用户数据正在加载或者已经刷新完成。这种动画通常出现在表格顶部或底部,增加了界面的动态感和趣味性。 “水瓶刷新...

    iOS 系统自带的扫二维码

    本篇文章将深入探讨如何利用iOS系统自带的库实现二维码扫描功能,以及相关的重要知识点。 首先,我们需要了解的是核心框架`AVFoundation`,它是iOS系统提供的一套多媒体处理框架,包含了音频、视频、图像处理等众多...

Global site tag (gtag.js) - Google Analytics