【问题标题】:UIView transitionFromViewUIView transitionFromView
【发布时间】:2011-02-09 20:25:15
【问题描述】:

我对 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];
}

它改变了视图但没有过渡......

谢谢

【问题讨论】:

    标签: ios uiview uiviewanimationtransition


    【解决方案1】:

    您不能在 viewDidLoad 中执行动画 - 您在其中所做的视图更改都在视图实际显示之前执行,这就是您所看到的。

    您是否尝试在第一次显示视图时显示此动画?如果是这样,您可以通过将动画放在计时器上来使其工作。请注意,使用这种方法,您还必须稍微重构 anima 方法以获取单个参数。

    在你看来DidLoad:

    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];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-14
      • 2014-02-16
      • 1970-01-01
      • 2013-09-18
      相关资源
      最近更新 更多