Изменение центра и угла анимации - PullRequest
0 голосов
/ 12 июля 2011

Можно ли установить новый центр и угол анимации? Я пытаюсь создать анимацию для скручивания страницы, но только частично, но по умолчанию этот эффект скручивает страницу снизу справа вверх дном вверх. Вот фрагмент кода, который я использую, чтобы оживить это.

- (IBAction)curlUp{
// Curl the image up or down
CATransition *animation = [CATransition animation];
[animation setDelegate:self];
[animation setDuration:0.35];
[animation setTimingFunction:UIViewAnimationCurveEaseInOut];

if (!curled){
    animation.type = @"pageCurl";
    animation.fillMode = kCAFillModeForwards;
    animation.endProgress = 0.78;
} else {
    animation.type = @"pageUnCurl";
    animation.fillMode = kCAFillModeBackwards;
    animation.startProgress = 0.42;
}
[animation setRemovedOnCompletion:NO];
[[self view] exchangeSubviewAtIndex:4 withSubviewAtIndex:5];

[[[self view] layer] addAnimation:animation forKey:@"pageCurlAnimation"];

// Disable user interaction where necessary
if (curled) {
    [[self view] exchangeSubviewAtIndex:4 withSubviewAtIndex:5];
    [[[[self view] subviews] lastObject] removeFromSuperview];
    } else {[self.view addSubview:ofertasCompraViewController.view];
    [self.view bringSubviewToFront:self.view];
    //[self.navigationController.navigationBar setUserInteractionEnabled:YES];
    //[self.view setUserInteractionEnabled:YES];
}
curled = !curled;
}

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

Thanx!

Ответы [ 2 ]

1 голос
/ 29 июля 2011

Наконец я нашел решение своей проблемы через пару дней после того, как спросил здесь.Я собираюсь опубликовать код, который использовал, чтобы любой мог его проверить.Может быть, это будет полезно для кого-то еще!

// Curl the image up or down
CATransition *animation = [CATransition animation];
[animation setDelegate:self];
[animation setDuration:0.35];
[animation setTimingFunction:UIViewAnimationCurveEaseInOut];

if (!curled){
    animation.type = @"pageCurl";
    animation.fillMode = kCAFillModeForwards;
    animation.subtype = kCATransitionFromLeft;
    animation.endProgress =0.75;
} else {
    animation.type = @"pageUnCurl";
    animation.fillMode = kCAFillModeBackwards;
    animation.subtype = kCATransitionFromLeft;
    animation.startProgress = 0.42;
}
[animation setRemovedOnCompletion:NO];
if(cambioVista)
[[self view] exchangeSubviewAtIndex:4 withSubviewAtIndex:5];

[[[self view] layer] addAnimation:animation forKey:@"pageCurlAnimation"];
0 голосов
/ 12 июля 2011

Извините, я не могу помочь вам с этим, но я видел несколько потоков по этому типу анимации, и Apple стремится отклонить приложения, которые используют этот код, так как они «используют частные API».Смотрите эту тему на форумах Apple.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...