2016-08-29 15 views
0

Я хочу, чтобы книга понравилась моему приложению. Для этого у меня есть UIPageViewController, который прокручивает несколько страниц. Все работает нормально. В настоящее время тип перехода UIPageViewController - это скручивание страницы, но я хочу реализовать что-то более похожее на флип (например, поворот страницы на твердой обложке).Применение анимации Flip для 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; 
     } 

Есть ли способ, что я могу изменить анимации перехода к флип вместо завитка без использования каких-либо внешних библиотек?

ответ

0

На UIPageViewController уровне у вас есть только PageCurl и Scroll переходов для более UIViewController

Вместо использования UIPageViewController, вы можете реализовать свой собственный вид контейнер и использовать TransitioningDelegate для определения анимации для серии UIViewController и применить его к объекту UIViewController.TransitioningDelegate каждого вашего UIViewController.

В Xamairn есть образец под названием LookInside, который использует пользовательский контроллер представления, который реализует пользовательский переход.

Ссылка: https://developer.xamarin.com/samples/monotouch/ios8/LookInside/

+0

Спасибо за ваш ответ. Iam, используя один UIVIewController. Я просто заменяю взгляды на него, когда страница перевернута. Как я могу это реализовать? –

+0

@helloworld Я не понимаю ваш комментарий, так как ваш вопрос говорит, что вы используете 'UIPageViewController'. Если у вас есть только один UIViewController, и вы удаляете и добавляете 'View', как вы получаете' PageCurl'? – SushiHangover

+0

@SushilHangover Я добавил еще код для ясности. –