应用翻转动画到UIPageViewController iOS Xamarin

问题描述:

我想要一本像我的应用程序感觉的书。为此,我有一个UIPageViewController滚动浏览多个页面。一切正常。目前,UIPageViewController的Transition类型是Page curl,但是我想实现更像是一个翻页的东西(就像翻页一样)。应用翻转动画到UIPageViewController iOS Xamarin

我已经实现了以下内容: -

public new UIViewController GetNextViewController(UIPageViewController pageViewController, UIViewController referenceViewController) 
    { 
    var page = referenceViewController as IpadNewController; 
    var index = page.pageIndex; 
    index ++; 
    if(index == numberOfPages) 
    { 
    return null; 
    } 
    else{ 
    return ViewControllerAtIndex (index); 
    } 

    } 

    public new UIViewController GetPreviousViewController(UIPageViewController pageViewController, UIViewController referenceViewController) 
    { 

    var page = referenceViewController as IpadNewController; 
    var index = page.pageIndex; 
    if(index == 0) 
    { 
    return null; 

    }else{ 
    index --; 
    return ViewControllerAtIndex (index); 
    } 


    } 

编辑

private void LoadData(List<Models.NewsModel> viewPages) 
     { 
     if (viewPages != null) 
     { 
     if (viewPages.Count % 5 == 0) 
     { 
     numberOfPages = viewPages.Count/5; 

     } 
     else 
     { 
     numberOfPages = viewPages.Count/5 + 1; 

     } 
     } 
     this.DataSource = this; 
     var startingViewController = this.ViewControllerAtIndex(0); 
     var viewControllers = new UIViewController[] { startingViewController }; 
     if (startingViewController != null) 
     { 
     this.SetViewControllers(viewControllers, UIPageViewControllerNavigationDirection.Forward, false, null); 
     } 
     this.View.Frame = View.Bounds; 

     } 
private IpadNewController ViewControllerAtIndex(int index) 
     { 
     if (numberOfPages == 0 || index >numberOfPages) 
     { 
     return null; 
     } 
     else 
     { 
     newIpadController = (IpadNewController)this.Storyboard.InstantiateViewController("iPadNew_VC"); 

     newIpadController.pageIndex = index; 

     } 
     return newIpadController; 
     } 

有没有一种方法,我可以改变过渡动画翻转而不是卷曲,而无需使用任何外部库?

UIPageViewController水平,你只需要而不是使用UIPageViewController的一个UIViewController

PageCurlScroll转换,您可以实现自己的视图容器,并使用TransitioningDelegate定义动画为您的系列UIViewController,并将其应用到您的UIViewController各自的UIViewController.TransitioningDelegate财产。

Xamairn有一个名为LookInside的示例,该示例使用实现自定义转换的自定义预览控制器。

参考:https://developer.xamarin.com/samples/monotouch/ios8/LookInside/

+0

感谢您的回复。 Iam使用单个UIVIewController。当页面翻转时,我只是替换它上的视图。我怎样才能实现呢? –

+0

@helloworld我不明白你的评论,因为你的问题说你正在使用'UIPageViewController'。如果你只有一个UIViewController,并且正在删除并添加'View',你将如何获得'PageCurl's? – SushiHangover

+0

@SushilHangover为了清晰起见,我添加了更多代码。 –