读书频道 > 移动开发 > ios开发 > iOS 5编程入门经典(第3版)——开发iPhone与iPad应用
13.3 为一系列图像增加动画效果
2012-11-08 11:05:09     我来说两句 
收藏    我要投稿   
本书面向iPhone和iPad开发初学者,涵盖了iOS开发的各个主题。本书的编写方式是渐进式的,这样读者就不会由于细节过多而疲于奔命。我认为最好的学习方式就是去实践,因此全书大量的试一试首先会介绍如何构建某个应...  立即去当当网订购

到目前为止,可以使用Image View 视图显示一张静态图像。除此之外,还可以使用它显示一系列图像并不断在它们之间切换。

下面的“试一试”就将介绍如何使用Image View 实现这种效果。

 试一试  显示一系列图像

代码文件Animations2.zip可从Wrox.com下载

代码文件Animations2.zip可从Wrox.com下载

(1) 使用Xcode 创建一个新的Single View Application(iPhone)项目,命名为Animations2。

(2) 在Xcode 中将一系列图像拖放到Supporting Files文件夹中,从而添加这些图像。在出现Add 对话框时,可以根据需要选中Copy Item into Destination Group’’s Folder 复选框,进而将每幅图像复制到该项目中。图13-9 展示了添加的图像。

(3) 在Animations2ViewController.m文件中添加如下粗体语句:


 

- (void)viewDidLoad {
    NSArray *images = [NSArray arrayWithObjects:                      
                       [UIImage imageNamed:@"”MacSE.jpeg"”],
                       [UIImage imageNamed:@"”imac.jpeg"”],
                       [UIImage imageNamed:@"”MacPlus.jpg"”],
                       [UIImage imageNamed:@"”imac_old.jpeg"”],
                       [UIImage imageNamed:@"”Mac8100.jpeg"”],
                       nil];

    CGRect frame = CGRectMake(0,0,320,460);
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:frame];
    imageView.animationImages = images;
    imageView.contentMode = UIViewContentModeScaleAspectFit;

    //---seconds to complete one set of animation---
    imageView.animationDuration = 3;

    //---continuous---
    imageView.animationRepeatCount = 0;

    //---start the animation---
    [imageView startAnimating];

    //---add the image view to the View window---
    [self.view addSubview:imageView];
   
    [imageView release];
    [super viewDidLoad];
}

(4) 按Command+R组合键,在iPhone Simulator 中查看这一系列图像。这些图像会显示在Image View 视图上,如图13-10 所示,一次只显示一张幅图像。


 

示例说明

在本例中,首先创建一个NSArray 对象并使用几个UIImage 对象对其进行初始化:
    NSArray *images = [NSArray arrayWithObjects:
                       [UIImage imageNamed:@"”MacSE.jpeg"”],
                       [UIImage imageNamed:@"”imac.jpeg"”],
                       [UIImage imageNamed:@"”MacPlus.jpg"”],
                       [UIImage imageNamed:@"”imac_old.jpeg"”],
                       [UIImage imageNamed:@"”Mac8100.jpeg"”],
                       nil];

接下来实例化一个UIImageView 对象:
    CGRect frame = CGRectMake(0,0,320,460);
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:frame];

为了使Image View 显示一系列图像,将它的animationImages 属性设置为images 对象。还需要设置Image View 的显示模式:
    imageView.animationImages = images;
    imageView.contentMode = UIViewContentModeScaleAspectFit;

为了控制图像的显示速度,需要设置animationDuration 属性的值,该值表示Image View 显示一组完整的图像所需要的秒数。凭借animationRepeatCount 属性,可以指定动画显示的次数。如果要一直显示,就将它设置为0:
    //---seconds to complete one set of animation---
    imageView.animationDuration = 3;

    //---continuous---
    imageView.animationRepeatCount = 0;

最后,调用startAnimating 方法开始播放动画。还需要调用“addSubView:” 方法将Image View视图添加到View 窗口中:
    //---start the animation---
    [imageView startAnimating];

    //---add the image view to the View window---
    [self.view addSubview:imageView];

注意,本节讨论的动画技术只适用于适量的动画对象。对于更复杂的动画,可能需要使用OpenGL ES。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:13.2.3 缩放
下一篇:13.4 在iPhone中播放视频
相关文章
图文推荐
1.3.5 有限的屏幕尺
1.2 必备条件
精通iOS开发 : 第7版
3.5 iFunBox
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站