gpt4 book ai didi

ios - 在 presentationTransitionWillBegin 中使用 animateAlongsideTransition 的问题

转载 作者:行者123 更新时间:2023-11-29 11:59:03 25 4
gpt4 key购买 nike

我正在尝试使用 UIViewControllerTransitioningDelegateUIViewControllerAnimatedTransitioningUIPresentationController 为模态呈现的 View Controller 创建自定义转换。

在我呈现的 View Controller 中,我实现了 UIViewControllerTransitioningDelegate 并具有以下方法:

-(id<UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented
presentingController:(UIViewController *)presenting
sourceController:(UIViewController *)source {

return [[MyAnimationController alloc] initWithAnimationType:MyAnimationTypePresent];
}

- (id<UIViewControllerAnimatedTransitioning>)animationControllerForDismissedController:(UIViewController *)dismissed {
return [[MyAnimationController alloc] initWithAnimationType:MyAnimationTypeDismiss];
}

- (UIPresentationController *)presentationControllerForPresentedViewController:(UIViewController *)presented
presentingViewController:(UIViewController *)presenting
sourceViewController:(UIViewController *)source {

return [[MyPresentationController alloc] initWithPresentedViewController:presented presentingViewController:presenting];
}

现在,在我的 UIPresentationController 子类中,我在呈现的 View Controller 下方添加了一个调光 View ,并希望它随着外观过渡而淡入。

- (void)presentationTransitionWillBegin {
self.dimmingView.alpha = 0.0f;
[self.containerView insertSubview:self.dimmingView atIndex:0];
[self.dimmingView autoPinEdgesToSuperviewEdges];

[self.presentedViewController.transitionCoordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> _Nonnull context) {
self.dimmingView.alpha = 1.0f;
}
completion:nil];
}

- (void)dismissalTransitionWillBegin {

[self.presentedViewController.transitionCoordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> _Nonnull context) {
self.dimmingView.alpha = 0.0f;
}
completion:^(id<UIViewControllerTransitionCoordinatorContext> _Nonnull context) {
[self.dimmingView removeFromSuperview]; }];
}

有趣且令人沮丧的是,我呈现的 View Controller 的呈现和关闭动画按预期工作并在 MyAnimationController 中实现。至于我的调光 View 的淡入/淡出,它仅在关闭呈现的 View Controller 时才有效。呈现它时,淡入不会与过渡一起动画化,而只是使用固定的时间量。我很确定我根据 Apple 的文档和几个教程实现了所有内容,但由于某种原因,它根本无法按预期工作。关于这里可能出现的问题有什么建议吗?

最佳答案

我相信你想在演示中使用presentingViewControllertransitionCoordinator,以及presentedViewConrollertransitionCoordinator关于解雇。这就是为什么它适用于解雇而不适用于您当前实现的演示。

关于ios - 在 presentationTransitionWillBegin 中使用 animateAlongsideTransition 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37810946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com