应用翻转动画到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
PageCurl
和Scroll
转换,您可以实现自己的视图容器,并使用TransitioningDelegate
定义动画为您的系列UIViewController
,并将其应用到您的UIViewController
各自的UIViewController.TransitioningDelegate
财产。
Xamairn有一个名为LookInside
的示例,该示例使用实现自定义转换的自定义预览控制器。
参考:https://developer.xamarin.com/samples/monotouch/ios8/LookInside/
感谢您的回复。 Iam使用单个UIVIewController。当页面翻转时,我只是替换它上的视图。我怎样才能实现呢? –
@helloworld我不明白你的评论,因为你的问题说你正在使用'UIPageViewController'。如果你只有一个UIViewController,并且正在删除并添加'View',你将如何获得'PageCurl's? – SushiHangover
@SushilHangover为了清晰起见,我添加了更多代码。 –