UIViewAnimationTransitionCurlUp работает горизонтально - PullRequest
2 голосов
/ 26 августа 2011

Я пытаюсь заставить UIViewAnimationTransitionCurlUp работать горизонтально, поэтому я поворачиваю вид, где применяется анимация.Но это не сработало, анимация осталась снизу вверх.Есть идеи?

first = [[PDFPortraitView alloc] initWithFrame:CGRectMake(0, 0, 960, 768) andCurrentPage:currentPage];
    container = [[UIView alloc] initWithFrame:CGRectMake(-96, 140, 960, 768)];
    container.backgroundColor = [UIColor redColor];
    container.transform = CGAffineTransformMakeRotation(M_PI * (0.5));
    [self.view addSubview:container];
    [container addSubview:first];


    second = [[PDFPortraitView alloc] initWithFrame:CGRectMake(0, 0, 960, 768) andCurrentPage:currentPage];


    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:1.5f];
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:container cache:NO];
    [first removeFromSuperview];
    [container addSubview:second];
    [UIView commitAnimations];

1 Ответ

0 голосов
/ 17 мая 2012

Попробуйте применить поворот на 90 градусов к преобразованию суперпредставления вашего представления. Это должно преобразовать координатное пространство вашего представления, поэтому переход завитка, примененный к дочернему представлению, должен свернуться в повернутых координатах.

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

внешний вид, повернут на 90 градусов.

средний вид - это вид, который получает переход скручиваемости

   inner view, rotated -90 degrees, and containing your actual content.

Я не пробовал, но это должно сработать.

Обратите внимание, что вид, на который вы переключаетесь, должен быть комбинированным видом среднего / внутреннего вида.

...