`
lizaochengwen
  • 浏览: 662701 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

iPhone 简单动画过度

 
阅读更多
在iPhone中动画过度非常简单.

首先获取当前的图形上下文:
Iphone代码 
CGContextRef context = UIGraphicsGetCurrentContext(); 

接着设置一些动画属性用于开始动画:

Iphone代码 
[UIView beginAnimations:nil context:context]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
[UIView setAnimationDuration:1.0]; 

然后设置想要过度的对象的最终状态.

Iphone代码 
[big setFrame:SMALLRECT]; 
[big setAlpha:0.5]; 
[little setFrame:BIGRECT]; 
[little setAlpha:1.0]; 

最后提交动画,这样一个动画就会自动生成了

Iphone代码 
[UIView commitAnimations]; 

其中,setAnimationCurve是设置动画的方式,他有下面集中方式:

UIViewAnimationCurveEaseInOut  //开始和结束时动画效果比较慢
UIViewAnimationCurveEaseIn       //开始动画效果比较慢
UIViewAnimationCurveEaseOut     //结束动画效果比较慢
UIViewAnimationCurveLinear         //平滑的动画效果
而,setAnimationDuration则是设置动画的持续时间.

下面是两个UIView之间的动画过度
Iphone代码 
       // Start Animation Block 
//CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextRef context = nil; 
[UIView beginAnimations:nil context:context]; 
[UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft forView:[self superview] cache:YES]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
[UIView setAnimationDuration:1.0]; 
 
// Animations 
[[self superview] exchangeSubviewAtIndex:0 withSubviewAtIndex:1]; 
 
// Commit Animation Block 
[UIView commitAnimations]; 

页面之间的过度主要依靠UIView
setAnimationTransition: forView: cache: 这个方法以及 exchangeSubviewAtIndex:withSubviewAtIndex:
前者通过UIView静态方法设置过度的动画种类,后者实现真正的过度函数掉用.种类有如下五种:

Iphone代码 
typedef enum { 
    UIViewAnimationTransitionNone, 
    UIViewAnimationTransitionFlipFromLeft, 
    UIViewAnimationTransitionFlipFromRight, 
    UIViewAnimationTransitionCurlUp, 
    UIViewAnimationTransitionCurlDown, 
} UIViewAnimationTransition; 


除了这种简单的动画方式外,其实还有一种利用QuartzCore来做过度动画.不同的地方在于,这个过度动画作用于层,换句话说,他动画直接做用于整个UIView,而不像UIView的动画,可以作用于UIView局部或本身.当UIView作用与本身时,实际上也就相当于是对层的动画了.

Iphone代码 
CATransition *animation = [CATransition animation]; 
[animation setDelegate:self]; 
[animation setDuration:1.0f]; 
[animation setTimingFunction:UIViewAnimationCurveEaseInOut]; 
[animation setType: kCATransitionMoveIn]; 
[animation setSubtype: kCATransitionFromBottom]; 
 
 
[[self superview] exchangeSubviewAtIndex:0 withSubviewAtIndex:1]; 
[[[self superview] layer] addAnimation:animation forKey:@"transitionViewAnimation"];     

setDuration:和UIView中的动画效果一样,持续时间.
setTimingFunction:是动画的种类,和UIView一样,比如匀速动画,快速开始结束等.
setType:是指定动画的类型,他有:

kCATransitionFade (淡入淡出来补给动画)
kCATransitionMoveIn(从一个方向覆盖的方式来补给动画)
kCATransitionPush(推送的方式来补给动画)
kCATransitionReveal(一个试图展现出另外另外一个试图的方式)
当除了第一种方式外(淡入淡出),可以通过setSubType:来制定动画的方向(因为这些动画都是直接着用于层的,所以相当于只有试图间的切换过渡).动画方向有4个:
kCATransitionFromRight
kCATransitionFromLeft
kCATransitionFromTop
kCATransitionFromBottom

除此之外,还存在一些未公开的动画方式,这些方式有些不能在模拟器中看到效果,但是真机可行.
Iphone代码 
// Curl the image up or down. This runs only on the iPhone and will not 
    // produce any effect from the simulator 
    CATransition *animation = [CATransition animation]; 
    [animation setDelegate:self]; 
    [animation setDuration:1.0f]; 
    [animation setTimingFunction:UIViewAnimationCurveEaseInOut]; 
    [animation setType:(notCurled ? @"pageCurl" : @"pageUncurl")]; 
     
     
     
    //让他不给删除掉 
    [animation setRemovedOnCompletion:NO]; 
    [animation setFillMode: @"extended"]; 
    [animation setRemovedOnCompletion: NO]; 
     
    notCurled = !notCurled; 
     
    [[[self.view viewWithTag:TOP_LAYER_VIEW] layer] addAnimation:animation forKey:@"pageFlipAnimation"]; 
分享到:
评论

相关推荐

    iphone SceneTransition动画转换

    本项目聚焦于iPhone上的SceneTransition动画转换,包含了大约20多种不同的动画效果,适用于各种应用场合。这些动画不仅增加了应用程序的视觉吸引力,还使得用户在操作时更加直观和舒适。 首先,我们要理解...

    防iphone动画效果

    标题提到的“防iPhone动画效果”可能是指Android开发者尝试实现与iOS设备上相似的流畅、精致的动画,以增强应用的吸引力和用户互动性。Android系统提供了多种动画机制,使得开发者能够创建出丰富多彩的视觉效果。...

    iphone 飘雪动画

    在iOS平台上,为iPhone创建飘雪动画是一种常见的视觉特效,可以增强用户界面的美观性和互动性。这种动画通常用于冬季主题的应用或者庆祝圣诞节等节日。本文将深入探讨如何实现iPhone上的飘雪动画,并重点关注如何...

    wifi动画展示...

    在Android系统中,Wi-Fi动画不仅是一个简单的图形变化,而是涉及到用户界面(UI)设计、系统资源管理和网络状态反馈等多个方面的技术。这篇详细讲解将围绕Android Wi-Fi动画的实现原理、UI设计原则、系统级交互以及...

    iphone 动态效果demo

    在iOS中,可以使用`UIView`的`animate(withDuration:animations:)`方法来创建一个简单的动画,例如平移一个视图。这个方法接受两个参数:动画持续时间和一个闭包,闭包中修改视图的frame或center等属性,系统会自动...

    iphone 页面翻转效果

    在iOS应用开发中,"iPhone页面翻转效果"是一种常见的过渡动画,通常用于模拟实际书籍翻页的效果,为用户带来更生动、互动的体验。这种效果在电子杂志、电子书或者展示类应用中尤其常见,因为它能带给用户更加真实且...

    Android 吸入式动画

    9. **优化性能**:在处理动画时,需要注意性能优化,避免过度绘制和不必要的计算,以保证动画流畅。 10. **测试与调试**:最后,别忘了在多种设备和Android版本上进行测试,确保动画效果的一致性和稳定性。 通过...

    Android应用源码仿Iphone抖动效果Shake Icon-IT计算机-毕业设计.zip

    - 抖动效果通常涉及多个简单的动画组合,例如先向左微移,然后向右微移,再旋转一定角度,如此反复。这可以通过`AnimatorSet`类来组合不同的动画,并控制它们的执行顺序。 3. **监听器与事件处理**: - 为了响应...

    Android仿Iphone文件夹分裂效果

    - 对动画进行优化,避免过度绘制,提升用户体验。 7. **兼容性和测试** - 需要确保该功能在不同的Android版本和设备上都能正常工作。进行广泛的设备和版本兼容性测试。 - 测试各种边界情况,如快速滑动、多点...

    android gallery画廊 如iPhone拖动相片特效

    2. **过度绘制效果**:iPhone相册的滑动效果包括了图片的过度绘制,使得用户在滑动时能预览下一张或上一张图片的一部分。在`ViewPager`中,我们可以通过重写`onPageScrolled()`方法来自定义滑动动画。 3. **惯性...

    Android 模仿iPhone列表数据View刷新动画详解

    例如,效果一可能是一个简单的视图旋转动画,通过`ObjectAnimator.ofFloat(view, "rotation", startAngle, endAngle)`来实现,其中`startAngle`和`endAngle`分别是动画开始和结束时的角度。效果二可能包含视图的缩放...

    仿iPhone 界面 界面美化

    4. **动画效果**:iPhone界面中的过渡动画和视差滚动给用户带来流畅的体验。在wince和winmobile上,可以使用C#、VB.NET或C++,配合DirectX或OpenGLES来实现类似的动画效果。 5. **字体与颜色**:iPhone的字体选择...

    iphone 用户界面设计指南

    该文档详细阐述了iPhone应用的设计原则、元素布局、交互模式以及动画效果等方面的知识,帮助开发者构建美观且易于使用的用户界面。 文档结构上,《iPhone用户界面设计指南》首先介绍了文档的翻译历史和译者信息,...

    开发phone动画的相关资料

    它允许开发者通过简单的代码就能创建复杂的动画效果,并且能够高效地利用硬件加速,使得动画运行更加流畅。该框架的核心思想是将用户界面视为一个图层树,每个图层都可以独立地进行动画处理,从而实现了高度灵活的...

    iPhone应用程序编程指南 中文

    - 提供了提高绘图性能的小技巧,比如避免过度绘制。 #### 六、文本和Web **文本视图** - 讨论了如何使用UITextView来展示和编辑文本。 **Web视图** - 介绍了如何在应用中嵌入网页内容。 #### 七、文件和网络 ...

    Iphone 编程系列 Core Animation Guide

    通过对 Core Animation Guide 的深入研究,我们可以了解到 Core Animation 不仅仅是一个简单的动画库,它还涉及到了复杂的图形渲染和性能优化技术。掌握 Core Animation 的核心概念和技术,能够帮助开发者创建出既...

    [iPhone]屏幕保护.rar

    这款【iPhone 屏幕保护】可能包含各种动态元素,比如动画、图片滑动、时间显示、天气信息等。这些元素不仅丰富了用户的视觉体验,也可能提供了实用的功能,使得待机屏幕不再单调。然而,过度复杂的屏幕保护可能会...

    Iphone主界面时钟的立体旋转,按钮的拖动, 按钮的滑动等等特效

    在实现这些特效的过程中,需要注意性能优化,因为过度的动画可能会消耗大量CPU资源,影响应用的流畅性。可以通过减少不必要的计算、使用轻量级视图或者适时暂停和恢复动画来提高效率。 最后,压缩包中的`Effect_...

    iphone 界面设计指南

    - 动画:适度使用动画增强用户体验,但避免过度动画导致干扰。 4. 屏幕尺寸与分辨率: - 考虑不同iPhone尺寸(如iPhone SE、iPhone 12 mini到iPhone 12 Pro Max)的屏幕适配。 - 使用Auto Layout和Size Classes...

    Android应用源码仿Iphone抖动效果Shake Icon.zip

    实现抖动效果时,需要注意性能问题,避免过度绘制和不必要的计算。可以通过限制动画次数、减少动画帧率或使用硬件加速等方法来优化。 以上就是关于"Android应用源码仿Iphone抖动效果Shake Icon.zip"中的核心知识点...

Global site tag (gtag.js) - Google Analytics