2010-08-18 251 views
0

我确定这很简单,但我试图将图像数组添加到图层。这是我到目前为止:将图像视图添加到图层

// Create the fish layer 
fishLayer = [CALayer layer]; 
//fish = [UIImageView imageNamed:@"Fish.png"]; 

fish.animationImages = [NSArray arrayWithObjects: 
     [UIImage imageNamed:@"swim01.png"], 
     [UIImage imageNamed:@"swim02.png"], 
     [UIImage imageNamed:@"swim03.png"], 
     [UIImage imageNamed:@"swim04.png"], 
     [UIImage imageNamed:@"swim05.png"], 
     [UIImage imageNamed:@"swim06.png"], 
     [UIImage imageNamed:@"swim05.png"], 
     [UIImage imageNamed:@"swim04.png"], 
     [UIImage imageNamed:@"swim03.png"], 
     [UIImage imageNamed:@"swim02.png"], nil]; 

fish.animationDuration = 1.50; 
fish.animationRepeatCount = -1; 
[fish startAnimating]; 


//[self.view addSubview:fish]; 
//This should add the animated array to layer. 
fishLayer.contents = fish; 

fishLayer.bounds = CGRectMake(0, 0, 56, 56); 
fishLayer.position = CGPointMake(self.view.bounds.size.height/2, 
     self.view.bounds.size.width/2); 

[self.view.layer addSublayer:fishLayer]; 

没有错误,但图像数组不出现在屏幕上。我想,也许这条线是probem ..

fishLayer.contents = fish; 

我已经加入了ImageView的到我的头文件,并在厦门国际银行增加其

如果可以请帮帮忙,

干杯,

亚当

回答

0

读你的代码,它看起来像你没有初始化鱼。既然你没有得到任何错误,我认为它是一个实例变量,这意味着它最初设置为零。所以当你设置fish.animationImages时,你基本上什么都不做(鱼是零)。在此代码片段中与其他所有鱼类一样。

它看起来像你最初使用的意见,但随后评论全部。你为什么要尝试使用图层?你应该可以这样做:

fish = [UIImageView imageNamed:@"Fish.png"]; 

fish.animationImages = [NSArray arrayWithObjects: 
     [UIImage imageNamed:@"swim01.png"], 
     [UIImage imageNamed:@"swim02.png"], 
     [UIImage imageNamed:@"swim03.png"], 
     [UIImage imageNamed:@"swim04.png"], 
     [UIImage imageNamed:@"swim05.png"], 
     [UIImage imageNamed:@"swim06.png"], 
     [UIImage imageNamed:@"swim05.png"], 
     [UIImage imageNamed:@"swim04.png"], 
     [UIImage imageNamed:@"swim03.png"], 
     [UIImage imageNamed:@"swim02.png"], nil]; 

fish.animationDuration = 1.50; 
fish.animationRepeatCount = -1; 
[fish startAnimating]; 

[self.view addSubview:fish]; 

fish.bounds = CGRectMake(0, 0, 56, 56); 
fish.position = CGPointMake(self.view.bounds.size.height/2, 
     self.view.bounds.size.width/2);