setAnimationTransition显然被忽略了

时间:2013-06-19 11:26:53

标签: iphone ios objective-c cocoa-touch

所以我有一个IBAction的按钮,它应该显示subviewview位于故事板中,我称之为instantiateViewController。这很好用。我想将视图过渡到屏幕上,这是我遇到此问题的地方。以下代码是我所拥有的,但它所做的只是一次显示整个view但按钮上没有文字等,然后从顶部向下拖动文本。相当模糊。评论setAnimationTransition行预示着相同的结果。

MapViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MapViewController"];

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:MapViewController.view cache:YES];

[self.view addSubview:MapViewController.view];
[UIView commitAnimations];

有人有什么想法吗?

非常感谢您的帮助。

感谢。

根据下面的评论,我已将其更改为:

[UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationOptionTransitionFlipFromRight animations:^{[self.view addSubview:MapViewController.view];} completion:NULL]; 

然而问题仍然存在。

3 个答案:

答案 0 :(得分:1)

试试这个:

[UIView transitionWithView:self.view
                duration:0.5
                options:UIViewAnimationOptionTransitionFlipFromRight
                animations:^{
                   [self.view addSubview:MapViewController.view];
                }
                completion:nil];

答案 1 :(得分:1)

[UIView transitionWithView:containerView duration:0.5
    options:UIViewAnimationOptionTransitionCurlUp //change to whatever animation you like
    animations:^ { [containerView addSubview:subview]; }
    completion:nil];

似乎工作。

答案 2 :(得分:0)

更改

[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft
                       forView:MapViewController.view 
                         cache:YES];

[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft
                       forView:self.view 
                         cache:YES];

您没有动画添加的视图,您可以为容器设置动画......

另请注意,这组方法已弃用,如果您不是针对iOS< 4.0,你应该使用基于块的动画方法。

不要使用UIViewAnimationOptionTransitionFlipFromRight,这仅适用于基于块的方法(参见Akash的回答)。