tutorialImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Tap to Start.png"]];
tutorialImage.frame = CGRectMake(0, 0, 1024, 768);
[tutorialImage addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(blankMethod)]];
tutorialImage.userInteractionEnabled = YES; // i use this line and the previous line so that the user can't press any buttons behind the image
tutorialImage.alpha = 0;
[self.view addSubview:tutorialImage];
[self.view bringSubviewToFront:tutorialImage];
[UIView animateWithDuration:1.0f animations:^{
tutorialImage.alpha = 1;
} completion:^(BOOL finished) {
[self.view addSubview:tutorialImage]; // this line makes the image come back
}];
我知道您可能无法仅从这段代码中推断出问题,但是该代码中是否有任何内容使 tutorialImage 自动将其自身从其超级视图中删除?
无论如何,在 UIView 动画期间,图像会像平常一样淡入,然后消失。如果我在那里添加最后一行代码(注释的那一行),UIView 动画将使图像淡入并在中途闪烁一次。我刚刚添加了这张图片,没有代码告诉它从超级视图中删除自己。
如果您对解决问题或向您展示更多代码有任何想法,请告诉我,我会经常检查。
另外,我尝试重新启动模拟器,但没有成功,教程图像在 h 文件中声明UIImageView *tutorialImage;
。当问题发生或任何事情时,控制台不会显示任何错误或任何事情。
编辑:
好吧,奇怪。我将 H 文件中的声明从更改UIImageView *tutorialImage;
为@property (strong, nonatomic) UIImageView *tutorialImage;
然后使用 _tutorialImage 解决了问题。这与strong参数有关吗?我会标记谁能解释发生了什么是正确的。