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

Posted

技术标签:

【中文标题】两个根演示文稿之间的 MvvmCross v5 动画【英文标题】:MvvmCross v5 animation between two root presentations 【发布时间】:2017-05-17 10:44:40 【问题描述】:

我有两个用 MvxRootPresentation 属性标记的 ios 视图:LoginView 没有包装到导航控制器中,MainView 包装到导航控制器中。

当我调用ShowViewModel<MainViewModel>() 时,这两个视图之间没有动画。所有后续视图都照常进行动画处理(在 NavigationController 中)。

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

【问题讨论】:

请将您的解决方案添加为下面的答案并接受它,而不是将其添加为您自己问题的更新。 完成。我关于***的第一个问题:)。 【参考方案1】:

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

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);
    

【讨论】:

谢谢,这帮助我实现了完全相同的行为! 这太棒了。请注意,最新版本将 _attributeTypesToShowMethodDictionary 字典定义为受保护的属性。另请注意,当新的根 VC 包装在导航控制器中时,这会出现常见的动画故障,其中背景在动画时变黑。

以上是关于两个根演示文稿之间的 MvvmCross v5 动画的主要内容,如果未能解决你的问题,请参考以下文章

ios导航堆栈中的两个转换/演示文稿

几何画板如何演示点的运动路径图形

如何制作动态显示图表,让图表随数据动起来

使用 Java 将 OpenOffice 幻灯片从一个演示文稿复制到另一个演示文稿

模块五:演示文稿PowerPoint2010的使用

将 PowerPoint 演示文稿嵌入/导出到 Plone 网站