`

iPhone开发动画效果之最简单的动画——动态加载图片 .

    博客分类:
  • ios
ios 
阅读更多
从本篇开始不再详细介绍每一步操作,而只介绍一些关键操作及展示核心代码和代码解释。


实现的功能:1)演示一个简单的动画效果,动态加载图片。2)点击屏幕时重新加载动画。

关键词:Animation 动画 动态加载图片


1、新建视图控制器ImageViewController(不带xib),作为根视图控制器,ImageViewController.h如下:

#import <UIKit/UIKit.h>

@interface ImageViewController : UIViewController

@property(strong,nonatomic)UIImageView *imageView;
@property(strong,nonatomic)UIImage *desktop;
-(void)loadImage;
@end


ImageViewController.m如下:

#import "ImageViewController.h"
@implementation ImageViewController
@synthesize imageView;
@synthesize desktop;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)loadView
{
    // If you create your views manually, you MUST override this method and use it to create your views.
    // If you use Interface Builder to create your views, then you must NOT override this method.
    NSLog(@"loadView");
    UIView *view = [[ UIView alloc] initWithFrame:[ UIScreen
                                                   mainScreen].applicationFrame] ;
    UIColor *bgColor = [UIColor colorWithRed:1 green:1 blue:1 alpha:1.0];
    [view setBackgroundColor:(bgColor)];
    self.view = view;
    desktop = [UIImage imageNamed:@"desktop.png"];
    
    [self performSelector:@selector(loadImage) withObject:nil afterDelay:0.1];
}

-(void)loadImage{
    if(imageView!=nil){
        [imageView removeFromSuperview];
    }
    //初始时,将imageView的宽度设置为0,这样就隐藏起来了
    imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 0, desktop.size.height)];
    [imageView setImage:desktop];
    
    [self.view addSubview:imageView];
    //设置动画效果
    CGContextRef context = UIGraphicsGetCurrentContext();
    //开始播放动画
    [UIView beginAnimations:nil context:context];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    //[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
    //[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
    //[UIView setAnimationCurve:UIViewAnimationCurveLinear];
    [UIView setAnimationDuration:1.5];
    //imageView最终的宽度为desktop.size.width
    [imageView setFrame:CGRectMake(0, 0, desktop.size.width, desktop.size.height)];   
    [UIView commitAnimations];
}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    [self loadImage];
}

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    imageView = nil;
    desktop = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end


2、运行效果是图片从左至右慢慢显示出来,如下,
[img]

[/img]
  • 大小: 241.9 KB
分享到:
评论

相关推荐

    iphone开发实例1

    而过渡效果和加载指示器则可能通过CAAnimation或者UIView动画来实现。 在开发过程中,我们还需要关注性能优化,如使用惰性加载(Lazy Loading)来减少内存占用,以及利用Grand Central Dispatch(GCD)进行多线程...

    iphone开发基础

    了解如何使用UIView的动画API创建简单动画,以及如何使用CADisplayLink实现更复杂的动画效果。同时,学习如何避免内存泄漏、减少CPU占用和优化渲染性能,将有助于打造流畅的应用。 最后,别忘了iOS的权限管理系统和...

    知易Cocos2D-iPhone 游戏开发教程

    总的来说,《知易Cocos2D-iPhone 游戏开发教程》将带你逐步深入Cocos2D-iPhone的世界,从基础概念到高级技巧,从简单的游戏到复杂的项目,帮助你成为一名熟练的Cocos2D-iPhone游戏开发者。通过学习这个教程,你将...

    Android应用源码仿Iphone风格翻页控件,源码及Jar包-IT计算机-毕业设计.zip

    6. Jar包使用:项目中包含的Jar包可能是一些辅助库,比如网络请求库、图片加载库等,学习如何在项目中集成和使用第三方库。 最后,对于毕业设计和论文撰写,这个项目可以作为很好的实践案例。在论文中,你可以详细...

    iOS游戏应用源代码——chanpi-Kitakaze-b264847.zip

    从"chanpi-Kitakaze"的名字来看,这可能是一款具有日本风情的游戏,因此可能会有特定的艺术风格和动画效果。源代码中可能包含了使用SpriteKit或SceneKit创建的2D或3D场景,这两个是苹果官方提供的轻量级游戏引擎,...

    iphone3开发基础教程

    第1章 欢迎来到iPhone的世界 1 1.1 关于本书 1 1.2 必要条件 1 1.3 必备知识 3 1.4 编写iPhone应用程序有何不同 4 1.4.1 只有一个正在运行的应用程序 4 1.4.2 只有一个窗口 4 1.4.3 受限访问 5 1.4.4 有限的响应时间...

    iPhone OpenGL ES Crash Course

    2. **加载立方体模型**:然后加载一个简单的立方体模型,并设置它的顶点数据。 3. **绘制立方体**:接下来使用OpenGL ES的绘图命令来绘制立方体。 4. **添加旋转动画**:最后,通过修改立方体的变换矩阵来实现旋转...

    (0119)-iOS/iPhone/iPAD/iPod源代码-图像(Image)-Thumbnail Picker View

    UIImageView不仅可以加载并显示单个图像,还可以进行简单的动画操作,如图片切换。在这个项目中,UIImageView将用于显示大图和选中的缩略图。 缩略图的生成通常涉及UIImage的缩放和裁剪操作。我们可以使用UIImage的...

    cocos2d入门ppt

    要创建动画,首先需要使用`CCSpriteFrameCache`加载精灵帧数据,然后创建一个`CCSpriteBatchNode`以优化渲染效率,接着收集帧列表,最后构建`CCAnimate`对象进行播放。 【工具支持】 在cocos2d开发过程中,一些...

    cocos2d游戏引擎

    3. **Actions和Transitions**:cocos2d提供了一系列动作和过渡效果,如移动、旋转、缩放、淡入淡出等,使开发者能够轻松创建丰富的动画效果。 4. **Tiled Map**:支持TMX格式的Tiled地图编辑器,允许开发者创建复杂...

    JAVA上百实例源码以及开源项目源代码

    2个目标文件 摘要:Java源码,文件操作,TCP,服务器 Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    认为应该针对那些最高级、最完善的浏览器来开发网站。而将那些被认为“过时”或有功能缺失的浏览器下的测试工作安排在开发周期的最后阶段 渐进增强 一开始只构建站点的最少特性,然后不断针对各浏览器追加功能。先让...

    android自定义开关控件-SlideSwitch的实例

    本文将详细介绍如何创建一个自定义的开关控件——SlideSwitch,该控件模仿了iPhone上的滑动开关,并提供了类似百度魔拍的视觉效果。 一、原理 SlideSwitch控件的核心在于自定义View的绘制和触摸事件处理。首先,它...

Global site tag (gtag.js) - Google Analytics