【问题标题】:Applying Flip animation to UIPageViewController iOS Xamarin将翻转动画应用于 UIPageViewController iOS Xamarin
【发布时间】:2017-01-05 07:50:45
【问题描述】:

我想要一本对我的应用有感觉的书。为此,我有一个 UIPageViewController 滚动浏览多个页面。一切正常。目前,UIPageViewController 的 Transition 类型是 Page curl,但我想实现更像翻转的东西(比如硬封面翻页)。

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

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

有没有一种方法可以在不使用任何外部库的情况下将过渡动画更改为翻转而不是卷曲?

【问题讨论】:

    标签: ios xamarin xamarin.ios viewflipper flip


    【解决方案1】:

    UIPageViewController 级别,UIViewController 只有PageCurlScroll 转换

    代替使用UIPageViewController,您可以实现自己的视图容器并使用TransitioningDelegate 为您的UIViewController 系列定义动画并将其应用于每个UIViewControllerUIViewController.TransitioningDelegate 属性.

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

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

    【讨论】:

    • 感谢您的回复。我正在使用单个 UIVIewController。我只是在翻页时替换它的视图。我该如何实现呢?
    • @helloworld 我不明白您的评论,因为您的问题表明您使用的是UIPageViewController。如果您只有一个 UIViewController 并且正在删除和添加 View,那么您如何获得 PageCurls?
    • @SushilHangover 为了清晰起见,我添加了更多代码。
    • 您能否举个例子说明如何实施您的解决方案,因为我对 iOS 还很陌生
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    • 1970-01-01
    相关资源
    最近更新 更多