【发布时间】:2012-01-15 18:25:04
【问题描述】:
我知道它很疯狂,但它就是这样:
我将 splashView 加载到我的应用中:在 viewDidLoad 上:
[self.view addSubview:splashView];
UIViewAnimationOptions options = UIViewAnimationOptionCurveLinear;
[UIView animateWithDuration:0.5 delay:3.0 options:options animations:^{
splashView.alpha = 0.0f;
splashView.frame = CGRectMake(512,384,-10,-10);
}
completion:^(BOOL finished){
[splashView removeFromSuperview];
}];
这里的代码没什么特别的。
但是,当我尝试通过按钮加载与操作相同的视图时 什么都没有发生:
-(IBAction)showSplash:(id)sender {
[self.view addSubview:splashView];
UIViewAnimationOptions options = UIViewAnimationOptionCurveLinear;
[UIView animateWithDuration:0.5 delay:3.0 options:options animations:^{
splashView.alpha = 0.0f;
splashView.frame = CGRectMake(512,384,-10,-10);
}
completion:^(BOOL finished){
[splashView removeFromSuperview];
}];
}
为什么会这样?
顺便说一句,如果我没有在 viewDidLoad 上加载 splashView,然后使用按钮(动作)它就可以了!
这是正常行为吗?
【问题讨论】:
-
您如何调用此操作,是通过 xib 还是您编写了一些代码,如果它们是一些代码,那么也发布。否则它应该在这两种情况下都有效。
-
你看到的是你在编码方面得到的......(没什么花哨的,简单的东西):) 只有一个视图控制器一个 xib(其中有两个 UIviews)。所有连接都正常。
-
另外,这似乎是视图内存问题,当您从超级视图中删除视图时将调用超级视图的释放,所以如果您第二次调用,那么您也需要保留它。
-
这是不正确的!我根本不需要保留它!事实上,它必须被释放,这就是苹果建议要做的事情的方式。不过感谢您的回复!
标签: iphone uiview sdk addsubview