Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 当第一个视图有一些退出动画时,如何在控制器中更改视图?_Ios_Objective C_Animation - Fatal编程技术网

Ios 当第一个视图有一些退出动画时,如何在控制器中更改视图?

Ios 当第一个视图有一些退出动画时,如何在控制器中更改视图?,ios,objective-c,animation,Ios,Objective C,Animation,在我的viewController中,有两个独立的自定义视图。第一个视图有一些退出动画,而第二个视图有一些进入动画。问题是,在第一个视图的退出动画完成后,如何在viewController中更改视图?我尝试了view.hidden属性,但它丢失了退出和进入动画。我还尝试添加一些animateWithDuration,并将switchView方法放入completion块,结果也失败了。 以下是我的viewController的代码: 提前谢谢 如果它们只是普通的UIView子类,那么可以使用类方

在我的viewController中,有两个独立的自定义视图。第一个视图有一些退出动画,而第二个视图有一些进入动画。问题是,在第一个视图的退出动画完成后,如何在viewController中更改视图?我尝试了view.hidden属性,但它丢失了退出和进入动画。我还尝试添加一些animateWithDuration,并将switchView方法放入completion块,结果也失败了。 以下是我的viewController的代码:


提前谢谢

如果它们只是普通的UIView子类,那么可以使用类方法transitionFromView:UIView*fromView to View:UIView*to View duration:NSTimeIntervalduration选项:UIViewAnimationOptions完成:void^BOOL完成UIView上的完成来实现UIView转换

那么,对于你的情况,你会这样做

- (void)switchView
{

    self.about = [[AboutView alloc] initWithFrame:self.view.frame];
    [self.view insertSubView:about belowSubView:self.homepage];
    self.about.backgroundColor = [UIColor whiteColor];
     [UIView transitionFromView:self.homepage toView:self.about duration:0.6 options:UIViewAnimationOptionCurveEaseInOut | UIViewAnimationOptionShowHideTransitionViews completion:^(BOOL completed){ [self.homePage removeFromSuperView]; }];
}

否则,如果要将UIViewController的视图添加到某个视图中,则应使用UIViewController包含方法。查看此内容以了解更多详细信息

您应该实现视图控制器控制。感谢您的回答,但它仍然丢失了以前自定义视图的退出动画。仅供参考,“onTouch”方法是退出动画方法,它包含两个单独的“animateWithDuration”方法来显示子视图的动画。整个退出动画大约需要1秒钟。我希望后一个视图在前一个视图的sUIView 1秒退出动画完成后出现。
- (void)switchView
{

    self.about = [[AboutView alloc] initWithFrame:self.view.frame];
    [self.view insertSubView:about belowSubView:self.homepage];
    self.about.backgroundColor = [UIColor whiteColor];
     [UIView transitionFromView:self.homepage toView:self.about duration:0.6 options:UIViewAnimationOptionCurveEaseInOut | UIViewAnimationOptionShowHideTransitionViews completion:^(BOOL completed){ [self.homePage removeFromSuperView]; }];
}