1

学校用に作成しようとしている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.

}

4

1 に答える 1

0

ビューコントローラをインスタンス化する場合、XIBファイル内のビューが最初にインスタンス化されます。この後、viewDidLoadメソッドが呼び出されます。

で新しい画像ビューをインスタンス化していますviewDidLoad。この画像ビューはすべてのサブビューの上に追加されます。そのため、ボタンやラベルなどは表示されません。

これを修正するには、次のように、ビューコントローラのビューに新しい画像ビューを背面に送信するように指示できます。

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

私があなたの説明を正しく理解しているなら、あなたはあなたのXIBでもあなたの背景として役立つために画像ビューを配置しました。メソッドで新しい画像ビューを作成する代わりに、これにアクセスできますviewDidLoad。これを行うにはIBOutlet、XIBファイルで画像ビューのプロパティを宣言する必要があります。

于 2012-11-09T01:57:30.240 に答える