如何在目标c中弹出弹出全视图?

Posted

技术标签:

【中文标题】如何在目标c中弹出弹出全视图?【英文标题】:How to do Pop in Popout whole view in objective c? 【发布时间】:2017-12-28 05:59:35 【问题描述】:

作为 iPad 应用程序,我在 ViewController 中有四个视图。每个视图都有不同的按钮和图表控制器。当用户单击我需要弹出整个视图的特定视图时,我需要这样做。我怎样才能实现这一点任何帮助?

【问题讨论】:

【参考方案1】:

要以正确的方式做到这一点,我建议用一点动画弹出你的视图。 首先在 .h 文件中添加 CAAnimationDelegate:

   @interface ViewController : UIViewController <CAAnimationDelegate>

然后在您的 .m 文件中

   CABasicAnimation *goOut = [CABasicAnimation animationWithKeyPath:@"position"];
   goOut.delegate = self; 
   // Choose animation duration in seconds, 0 if you dont want.
   [goOut setDuration:0.5]; 
   [goOut setRepeatCount:0];
   // You can play with A and B to specify the direction from where your VIEW will leave the screen
   [goOut setToValue:[NSValue valueWithCGPoint:CGPointMake(VIEW.center.x + A, VIEW.center.y + B)]]; 
   [VIEW.layer addAnimation:goOut forKey:@"position"];

最后只是隐藏视图

    - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag 
         if (flag) 
              [VIEW setHidden:YES];
         
    

现在,如果您希望 VIEW 更改其框架并获得屏幕尺寸,只需更改

    CABasicAnimation *goOut = [CABasicAnimation animationWithKeyPath:@"position"];
    [goOut setToValue:[NSValue valueWithCGPoint:CGPointMake(VIEW.center.x + A, VIEW.center.y + B)]];
    [VIEW.layer addAnimation:goOut forKey:@"position"];

     CABasicAnimation *goOut = [CABasicAnimation animationWithKeyPath:@"bounds.size"];
     [goOut setToValue: [NSValue valueWithCGSize:CGSizeMake(self.view.frame.size.width,self.view.frame.size.height)]];
     [VIEW.layer addAnimation:goOut forKey:@"bounds.size"];

在这种情况下不要隐藏你的视图;)

【讨论】:

Mohamed Sadock 我需要再创建一个视图吗? 不,不需要。只需将 VIEW 替换为点击的视图

以上是关于如何在目标c中弹出弹出全视图?的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI - 如何在 SwiftUI 中弹出到特定视图?

在展开的 segue 中弹出到根视图

如何在 swiftui 中弹出到 TabView 应用程序中的特定视图。我也使用了 StackNavigation 但不在 swiftui 中工作

如何从堆栈中弹出视图控制器而不导航到它们

在导航控制器中弹出到根视图

如何从 UICollectionView 中弹出一个 uicollectionViewCell?