我对iOs编程很新。而且我坚持一个(我很确定)非常简单的问题。 不知道我做错了什么......
- 我的viewDidLoad:
[super viewDidLoad];
CGRect frame = CGRectMake(0, 0, 768, 1024);
UIView *uno=[[[UIView alloc] initWithFrame:frame] autorelease];
UIImageView *mainView = [[[UIImageView alloc] initWithFrame:frame] autorelease];
mainView.image = [UIImage imageNamed:@"photo.jpg"];
[uno addSubview:mainView];
UIView *dos=[[[UIView alloc] initWithFrame:frame] autorelease];
UIImageView *mainViewDos = [[[UIImageView alloc] initWithFrame:frame] autorelease];
mainViewDos.image = [UIImage imageNamed:@"Default.png"];
[dos addSubview:mainViewDos];
//
[self.view addSubview:uno];
//
[self anima:uno:dos];
我的动画方法:
-(void) anima:(UIView *)uno:(UIView *)dos{
[UIView transitionFromView:uno
toView:dos
duration:2.0
options:UIViewAnimationOptionTransitionFlipFromLeft
completion:nil];
}
它改变了视图,但没有过渡......
由于
答案 0 :(得分:2)
您无法在viewDidLoad中执行动画 - 在您实际显示视图之前,您所做的视图更改都已执行,这就是您所看到的。
您是否在首次显示视图时尝试显示此动画?如果是这样,您可以通过将动画放在计时器上来使其工作。请注意,使用此方法,您还必须稍微重构anima
方法以获取单个参数。
在viewDidLoad中:
NSDictionary *views = [NSDictionary dictionaryWithObjectsAndKeys:uno, @"uno", dos, @"dos", nil];
[self performSelector:@selector(anima) withObject:views afterDelay:0.1];
然后将您的anima
方法更改为:
-(void) anima:(NSDictionary *)views {
[UIView transitionFromView:[views objectForKey:@"uno"]
toView:[views objectForKey:@"dos"]
duration:2.0
options:UIViewAnimationOptionTransitionFlipFromLeft
completion:nil];
}