ios - 使用 UIViewControllerTransitionCoordinator animateAlongsideTransition 方法
<p><p>我有一个 ViewController 可以说 <code>ViewControllerA</code> 和一个 ViewController 可以说 <code>ViewControllerB</code>。</p>
<p><code>ViewControllerB</code> 使用自定义转换从 <code>ViewControllerA</code> 模态呈现。</p>
<p>在 ViewControllerA 中:</p>
<pre><code>-(void)buttonClicked...
{
ViewControllerB * controller = [ init];
;
controller.transitioningDelegate = self;
;
}
</code></pre>
<p>在 ViewControllerA 中 -</p>
<pre><code>#pragma mark - UIViewControllerTransitioningDelegate
-
(id<UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented
presentingController:(UIViewController *)presenting
sourceController:(UIViewController *)source
{
FadeInWithPopAnimator* fadeInAnimator = [ init];
return fadeInAnimator;
}
</code></pre>
<p>我有一个名为 <code>FadeInWithPopAnimator</code> 的自定义 Animator 类,它实现了 transitionDuration 和 animationTransition 方法。</p>
<p>我想在呈现的 viewcontroller - <code>ViewControllerB</code> 上为几个 View 设置动画,过渡动画开始后 0.2 秒。</p>
<p>我已在线阅读文档,看起来使用 transitionCoordinator 是可行的方法。
但是我应该把代码放在哪里?</p>
<p>1) 在 <code>ViewControllerA</code> 中调用 presentViewController 时?</p>
<p>2) 在 Animator 类中?</p>
<p>3) 在 <code>ViewControllerA</code> 的 viewWillAppear 中?</p>
<p>我尝试了几件事,但没有给出结果,而且很难找到示例。</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>呈现的 ViewController 上的TransitionCoordinator 将在 ViewController 的动画开始后设置,因此在呈现的 ViewController 的 <code>viewWillAppear</code> 中。在过渡协调器上使用 <code>animateAlongsideTransition:completion:</code> 添加任何额外的动画。在您的 ViewControllerB 中:</p>
<pre><code>-(void)viewWillAppear:(BOOL)animated {
;
[self.transitionCoordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext>_Nonnull context) {
// change any properties on your views
} completion:^(id<UIViewControllerTransitionCoordinatorContext>_Nonnull context) {
}];
}
</code></pre></p>
<p style="font-size: 20px;">关于ios - 使用 UIViewControllerTransitionCoordinator animateAlongsideTransition 方法,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/37154669/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/37154669/
</a>
</p>
页:
[1]