gpt4 book ai didi

ios - 两个根演示文稿之间的 MvvmCross v5 动画

转载 作者:可可西里 更新时间:2023-11-01 05:17:21 24 4
gpt4 key购买 nike

我有两个标记为 MvxRootPresentation 的 iOS View 属性:LoginView没有包装到导航 Controller 和MainView包装到导航 Controller 中。

当我调用 ShowViewModel<MainViewModel>()这两个 View 之间没有动画。所有后续 View 都像往常一样动画化(在 NavigationController 中)。

如何为这个过渡设置动画?

最佳答案

好的,我自己做了 :) 我必须添加我的自定义演示属性和自定义演示者:

public class AnimatedRootPresentationAttribute : MvxRootPresentationAttribute
{
}

public class MyPresenter : MvxIosViewPresenter
{
public MyPresenter(IUIApplicationDelegate appDelegate, UIWindow window)
: base(appDelegate, window)
{
}

protected override void RegisterAttributeTypes()
{
base.RegisterAttributeTypes();

_attributeTypesToShowMethodDictionary.Add(typeof(AnimatedRootPresentationAttribute),
(viewController, attribute, request) => ShowAnimatedRootViewController(
viewController, (AnimatedRootPresentationAttribute)attribute, request));
}

private void ShowAnimatedRootViewController(
UIViewController viewController,
AnimatedRootPresentationAttribute attribute,
MvxViewModelRequest request)
{
ShowRootViewController(viewController, attribute, request);
AddAnimation();
}

private void AddAnimation()
{
var transition = new CATransition
{
Duration = 0.2,
Type = CAAnimation.TransitionMoveIn,
Subtype = CAAnimation.TransitionFromTop
};

_window.RootViewController.View.Layer.AddAnimation(transition, null);
}
}

关于ios - 两个根演示文稿之间的 MvvmCross v5 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44022640/

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