无法在动画UIImageView上显示文本或按钮?

时间:2012-11-09 01:40:50

标签: iphone objective-c animation

我有一款iPhone游戏,我正在尝试为学校创建,但我遇到了一些麻烦。我创建了一个动画UIImage,我用它作为我的背景。问题是,这是我得到的最远的。我无法在ImageView上方显示任何按钮,文本或标签。我将它设置在View控制器中,ImageView位于底部,以便所有其他对象可以显示在上方。有没有人知道我在这里做错了什么或者我可以添加什么可能解决这个问题?我已经包含了创建动画的代码。

    - (void)viewDidLoad

{
//创建将执行动画的视图     UIImageView * YourImageView = [[UIImageView alloc] initWithFrame:self.view.frame];

// load all the frames of our animation
YourImageView.animationImages = [NSArray arrayWithObjects:    
                                 [UIImage imageNamed:@"Star-Field 1.png"],
                                 [UIImage imageNamed:@"Star-Field 2.png"],
                                 [UIImage imageNamed:@"Star-Field 3.png"],
                                 [UIImage imageNamed:@"Star-Field 4.png"],
                                 [UIImage imageNamed:@"Star-Field 5.png"],
                                 [UIImage imageNamed:@"Star-Field 6.png"],
                                 [UIImage imageNamed:@"Star-Field 7.png"],
                                 [UIImage imageNamed:@"Star-Field 8.png"],
                                 [UIImage imageNamed:@"Star-Field 9.png"],
                                 [UIImage imageNamed:@"Star-Field 10.png"],
                                 [UIImage imageNamed:@"Star-Field 11.png"],
                                 [UIImage imageNamed:@"Star-Field 12.png"],
                                 [UIImage imageNamed:@"Star-Field 13.png"],
                                 [UIImage imageNamed:@"Star-Field 14.png"],
                                 [UIImage imageNamed:@"Star-Field 15.png"],
                                 [UIImage imageNamed:@"Star-Field 16.png"],
                                 [UIImage imageNamed:@"Star-Field 17.png"], 
                                 [UIImage imageNamed:@"Star-Field 18.png"], nil];

// all frames will execute in 1.75 seconds
YourImageView.animationDuration = 0.5;
// repeat the animation forever
YourImageView.animationRepeatCount = 0;
// start animating
[YourImageView startAnimating];
// add the animation view to the main window 
[self.view addSubview:YourImageView];

[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

}

1 个答案:

答案 0 :(得分:0)

实例化视图控制器时,首先实例化XIB文件中的视图。在此之后,调用viewDidLoad方法。

您正在viewDidLoad中实例化新的图片视图,此图片视图会添加到每个子视图的顶部,这就是您的按钮,标签等不会显示的原因。

要解决此问题,您可以指示视图控制器的视图将新图像视图发送到后面,如下所示:

[self.view addSubview:YourImageView];
[self.view sendSubviewToBack:YourImageView];

如果我正确理解您的描述,您也会在XIB中放置一个图像视图作为背景。您可以访问此内容,而不是在viewDidLoad方法中创建新的图片视图。为此,您必须为XIB文件中的图像视图声明IBOutlet属性。