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方法结束时运行。我以前用这种方式编程过很多次,这是我第一次看到这种情况发生。

更新:

如果我删除添加backUIImageView 的代码,这不再是问题。如何以像这样的纵横比填充格式添加巨型图像(3000x2000),以免导致程序挂起?我为 iphone、ipad 等使用相同的背景图像,因此对于视网膜 iPad 来说它需要很大......

4

0 回答 0