Эффект перехода UIViewControllers Нравится эффект открытия книги iBooks?

Я работаю над приложением, которое является клоном iBooks, и последние 2 дня я пытался анимировать поток обложки книги, как приложение iBook.

Это Скриншот iBooks, моя книжная полка именно такая:

введите здесь описание изображения

Когда пользователь нажимает на любую книгу, я хочу выполнить переход анимации следующим образом:

введите здесь описание изображения

введите здесь описание изображения

Вы можете видеть, как слева переворачивается обложка книги, а белый вид — это новый контроллер просмотра, который предназначен для загрузки содержимого книги.

Кто-нибудь может помочь мне с этой проблемой? Я хочу выполнить точно такую ​​же анимацию. с двумя контроллерами просмотра.


person munibsiddiqui    schedule 20.07.2012    source источник
comment
аналогичный вопрос: stackoverflow.com/ вопросы/8499601/   -  person shahid-rasheed    schedule 20.07.2012
comment
Спасибо за ответ, но, возможно, есть разница между анимацией UIView и анимацией UiViewController.   -  person munibsiddiqui    schedule 20.07.2012
comment
Вы могли бы/вероятно реализовали бы это как пользовательский переход, если хотите перейти между двумя контроллерами представления. Код будет похож на переход между двумя представлениями. Я полагаю, что прошлогоднее видео сеанса WWDC для Core Animation имело специальный переход (с огнем :P) в конце видео.   -  person David Rönnqvist    schedule 20.07.2012


Ответы (4)


У меня есть код демонстрации эффекта открытия ibook на github, вы можете увидеть iBooksOpen

person Guo Luchuan    schedule 08.03.2013
comment
привет, Го, могу ли я использовать ваш проект iBooksOpen в своем приложении? Я не могу найти лицензию. Это с открытым исходным кодом? Спасибо - person Max; 11.07.2013

Проверьте это, может быть, это может вам помочь:

   coverView.layer.anchorPoint=CGPointMake(0, .5);
  coverView.center = CGPointMake(coverView.center.x - coverView.bounds.size.width/2.0f, coverView.center.y);

    NSLog(@"%f",coverView.layer.anchorPoint.y);

    [UIView animateWithDuration:.5 delay:0 options:UIViewAnimationCurveEaseIn  animations:^{
        coverView.transform = CGAffineTransformMakeTranslation(0,0);
        CATransform3D _3Dt = CATransform3DIdentity;
        _3Dt =CATransform3DMakeRotation(3.141f/2.0f,0.0f,-1.0f,0.0f);
        _3Dt.m34 = 0.001f;
        _3Dt.m14 = -0.0015f;
        coverView.layer.transform =_3Dt;
    } completion:^(BOOL finished){
        if (finished) {
            [self animateCurrentViewController];
            [self toolBarAndNavigationBarNeedToShow:YES];
        }
    }];

CoverView - это не что иное, как ваше мнение

person sachin    schedule 09.10.2012

Легенда: LibraryViewController - полка с книгами ReadingViewController - ViewController, где происходит чтение (см. последнее изображение вопроса)

Допустим, обложка UIImageView. Используя iOS 5.0+, вы можете добавить readingViewController в качестве подвида LibrabryViewController. Затем одна из анимаций — масштабирование книги (readingViewController + UIIMageView). Я предлагаю здесь анимировать UIView, который является контейнером обоих. Второй переворачивает обложку:

UIIMageView.transform = CGAffineTransformMake(a,b,c,d,tx,ty); Я думаю, что здесь a и d должно быть -1 Подробнее о CGAffineTransform

P.S. Это кажется интересной проблемой. Пожалуйста, дайте мне знать, если мой предложенный метод возможен!

person Riskov    schedule 26.09.2012

я не уверен, но, возможно, вы можете попробовать UIPageViewController, это даст вам эффект книги. вот ссылка: http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIPageViewControllerClassReferenceClassRef/UIPageViewControllerClassReference.html

person sachin    schedule 20.07.2012
comment
Спасибо за быстрый ответ, но сэр UipageViewController дает эффект скручивания во время перелистывания страниц, которого я уже добился, я хочу, чтобы эффект открытия обложки книги - person munibsiddiqui; 20.07.2012