0

今まで見たことのない非常に奇妙なエラーがあります。私はこれまで何百回もこのコードを使用しましたが、何らかの理由で、afterDelayは完全に無視されています。

私のコード:

- (void)runIntro
{
if([self introDone])return;

UIImageView* back = [[UIImageView alloc] initWithFrame:[[AppDelegate shared] frame]];
[back setImage:[[AppDelegate shared] bgImage]];
[back setContentMode:UIViewContentModeScaleAspectFill];

[self.view addSubview:back];

UIImageView* target = [[UIImageView alloc] initWithFrame:CGRectMake(([[AppDelegate shared] width]-250)/2.0, ([[AppDelegate shared] height]-350)/2.0, 250, 72)];
[target setImage:[UIImage imageNamed:@"bpside.png"]];
[self.view addSubview:target];

Parabolic* wally = [[Parabolic alloc] initWithFrame:CGRectMake(([[AppDelegate shared] width]-200)/2.0, ([[AppDelegate shared] height]-314)/2.0+250, 200, 200)];
[wally setImage:[UIImage imageNamed:@"wallyside1.png"]];
[self.view addSubview:wally];

[self performSelector:@selector(moveWallyIntro:) withObject:wally afterDelay:1];
[self performSelector:@selector(moveWallyIntro:) withObject:wally afterDelay:2];
}

- (void)moveWallyIntro:(Parabolic*)wally
{
    [wally runPBM:50 withDY:300 withDuration:0.5];
}

他のすべてのコードが正しく機能していることは知っていますが、何らかの理由でセレクターがすぐに実行されているため、大きな問題が発生します。このコードは、viewWillAppearメソッドの最後で実行されています。私はこれまで何度もこの方法でプログラムを作成しましたが、これが発生するのはこれが初めてです。

アップデート:

UIImageViewを追加するコードを削除するとback、これは問題ではなくなります。プログラムがハングしないように、このようなアスペクトフィル形式で巨大な画像(3000x2000)を追加するにはどうすればよいですか?私はiphone、ipadなどに同じ背景画像を使用しているので、網膜iPadには大きくする必要があります...

4

0 に答える 0