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 添加到我的头文件中并将其添加到 XIB

如果可以的话请帮忙,

干杯,

亚当

4

1 回答 1

0

阅读您的代码,您似乎没有初始化鱼。由于您没有收到任何错误,我假设它是一个实例变量,这意味着它最初设置为 nil。所以当你设置 fish.animationImages 时,你基本上什么都不做(fish 是 nil)。与此代码段中对 fish 的所有其他使用相同。

看起来您最初使用的是视图,但随后将所有内容都注释掉了。为什么要尝试使用图层?你应该能够做到这一点:

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);
于 2010-08-18T18:09:03.650 回答