菜鸟教程小白 发表于 2022-12-12 23:10:39

ios - 导航栏在自定义展开转场的动画中不可见


                                            <p><p>我在导航 Controller 中使用自定义展开转场,在转场动画中,导航栏在动画期间不可见,当动画结束时导航栏“弹出”。 ¿如何在动画期间保持导航栏的可见性?</p>

<p>更多细节:</p>

<p>我在导航栏中有一个按钮调用模态视图这个动画按预期执行,新 View 有一个按钮来触发展开segue动画 View 增长和消失,而这个动画正在执行导航栏在动画完成之前,目标 ViewController 不可见。</p>

<p>这是我用于自定义转场的代码。</p>

<pre><code>- (void) perform {
    UIViewController *sourceViewcontroller= self.sourceViewController;
    UIViewController *destinationViewcontroller = self.destinationViewController;

    ;

    ;

    [UIView animateWithDuration:0.2
                        delay:0.0
                        options:UIViewAnimationOptionCurveEaseInOut
                     animations:^{
                         origenViewcontroller.view.transform = CGAffineTransformMakeScale(1.5, 1.5);
                         origenViewcontroller.view.alpha = 0.0;
                     }
                     completion:^(BOOL finished){
                         ;
                         ;
                     }];
}
</code></pre>

<p>好的,我想我明白了,我所做的是在源 View 的父 View 中插入 <strong>整个导航 ControllerView </strong>,并删除代码以 <strong>从superview</strong> 并将 <strong>dismissViewControllerAnimated</strong> 的选项设置为 <strong>YES</strong>,如下所示:</p>

<pre><code>- (void) perform {
    UIViewController *origenViewcontroller= self.sourceViewController;
    UIViewController *destinoViewcontroller = self.destinationViewController;

    ;

    [UIView animateWithDuration:0.4
                        delay:0.0
                        options:UIViewAnimationOptionCurveEaseInOut
                     animations:^{
                         origenViewcontroller.view.transform = CGAffineTransformMakeScale(2.0, 2.0);
                         origenViewcontroller.view.alpha = 0.0;
                     }
                     completion:^(BOOL finished){
                         ;
                     }];
}
</code></pre>

<p>我仍然不确定这是否是正确的做法。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您也可以将 <code>destinationViewController</code> 嵌入到 <code>UINavigationController</code> 中,并将您的 segue 从 <code>sourceViewController</code> 设置为 <code>Navigation Controller</code>.</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 导航栏在自定义展开转场的动画中不可见,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/24332248/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/24332248/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 导航栏在自定义展开转场的动画中不可见