2016-08-29 12 views
0

私のアプリの感覚のような本が欲しい。このために、私はいくつかのページをスクロールする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); 
    } 


    } 

EDIT

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を使用してのUIViewController

ためPageCurlScroll遷移を持っているあなただけ、あなた自身のビューコンテナを実装し、UIViewControllerのあなたのシリーズのアニメーションを定義し、それを適用するためにTransitioningDelegateを使用することができUIPageViewControllerレベルで

答えて

0

UIViewControllerUIViewController.TransitioningDelegateの各プロパティに

Xamairnには、カスタムトランジションを実装するカスタムプレゼンテーションコントローラを使用するLookInsideというサンプルがあります。

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

+0

ご返信ありがとうございます。単一のUIVIewControllerを使用してIamを呼び出します。ページが反転したときにそのビューを置き換えるだけです。私はそれをどのように実装できますか? –

+0

@helloworldあなたの質問はあなたが 'UIPageViewController'を使用していると言っているので、私はあなたのコメントを理解していません。 UIViewControllerが1つしかなく、 'View'を削除して追加している場合は、どのように' PageCurl'を取得していますか? – SushiHangover

+0

@SushilHangoverわかりやすくするためにコードを追加しました。 –

関連する問題