首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIView transitionFromView

UIView transitionFromView
EN

Stack Overflow用户
提问于 2011-02-10 04:25:15
回答 1查看 3.4K关注 0票数 0

我是iOs编程的新手。我陷入了一个(我确信)非常简单的问题。不知道我做错了什么..。

-My viewDidLoad:

代码语言:javascript
复制
[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];

和我的anima方法:

代码语言:javascript
复制
-(void) anima:(UIView *)uno:(UIView *)dos{
    [UIView transitionFromView:uno
                        toView:dos
                      duration:2.0
                       options:UIViewAnimationOptionTransitionFlipFromLeft
                    completion:nil];
}

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

谢谢

EN

回答 1

Stack Overflow用户

发布于 2011-03-22 06:47:59

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

在第一次显示视图时,是否尝试显示此动画?如果是这样,您可以通过将动画设置为计时器来使其工作。请注意,使用这种方法时,您还必须对anima方法进行一些重构,以接受单个参数。

在您的viewDidLoad中:

代码语言:javascript
复制
NSDictionary *views = [NSDictionary dictionaryWithObjectsAndKeys:uno, @"uno", dos, @"dos", nil];
[self performSelector:@selector(anima) withObject:views afterDelay:0.1];

然后将您的anima方法更改为:

代码语言:javascript
复制
-(void) anima:(NSDictionary *)views {
  [UIView transitionFromView:[views objectForKey:@"uno"]
                      toView:[views objectForKey:@"dos"]
                    duration:2.0
                     options:UIViewAnimationOptionTransitionFlipFromLeft
                  completion:nil];
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4950053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档