Pergunta

Eu tenho uma transição funcionando usando UIViewAnimationTransitionCurlUp No entanto, eu gostaria que a animação parasse no meio do caminho, assim como o aplicativo Maps ... Algum pensamento sobre como conseguir isso?

Foi útil?

Solução

O Curl parcial dos mapas é uma API privada. Você pode encontrar detalhes de como usá -lo no livro de Erica Sadun O livro de receitas do desenvolvedor do iPhone, mas você será rejeitado na App Store para usá -la.

Outras dicas

No iOS 3.2 e mais tarde, você pode dar o seu UIViewController uma UIModalTransitionStyle do UIModalTransitionStylePartialCurl. De UIViewController referência, Nós vemos

typedef enum {
  UIModalTransitionStyleCoverVertical = 0,
  UIModalTransitionStyleFlipHorizontal,
  UIModalTransitionStyleCrossDissolve,
  UIModalTransitionStylePartialCurl,
} UIModalTransitionStyle;

Portanto, um exemplo de uso de uso seria:

UIViewController *viewController;
// …create or retrieve your view controller…

// Note: The modalPresentationStyle must be UIModalPresentationFullScreen,
//       and the presenter must also be a full-screen view
viewController.modalPresentationStyle = UIModalPresentationFullScreen;
viewController.modalTransitionStyle = UIModalTransitionStylePartialCurl;

Encontrei uma solução para adicionar um UIView ao UIViewController usando o bloco de animação.

M_Container é um uiview que contém minha animação de visualização (self). Self é um uiview.

CUIDADO: Você precisa ter importar quartzcore

Para apresentar a visualização com a Animação de Curl Page, você pode usar:

-(void)PresentView
{
    [UIView animateWithDuration:1.0 
                     animations:^{
                         CATransition *animation = [CATransition animation];
                         [animation setDelegate:self];
                         [animation setDuration:0.7];
                         [animation setTimingFunction:UIViewAnimationCurveEaseInOut];
                         animation.type = @"pageCurl";
                         animation.fillMode = kCAFillModeForwards;
                         animation.endProgress = 0.65;
                         [animation setRemovedOnCompletion:NO];
                         [m_container.layer addAnimation:animation forKey:@"pageCurlAnimation"];  
                         [m_container addSubview:self];
                         ;}  
     ];    
}

E quando você deseja ocultar esta visão, você pode usar:

-(void)HideHelpView
{
    [UIView animateWithDuration:1.0 
                     animations:^{
                         CATransition *animation = [CATransition animation];
                         [animation setDelegate:self];
                         [animation setDuration:0.7];
                         [animation setTimingFunction:UIViewAnimationCurveEaseInOut];
                         animation.type = @"pageUnCurl";
                         animation.fillMode = kCAFillModeForwards;
                         animation.startProgress = 0.35;
                         [animation setRemovedOnCompletion:NO];
                         [m_container.layer addAnimation:animation forKey:@"pageUnCurlAnimation"];  
                         [self removeFromSuperview];

                         ;}  
     ];

}

Não tenho certeza se isso funcionará, mas o parâmetro para +setAnimationRepeatCount: pode ser uma fração.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top