Pergunta

Eu estou escrevendo um aplicativo de desenho que mostra uma ferramentas View Controller quando o usuário clica em um item em uma barra de ferramentas. No entanto, vários dos meus beta testers têm relatado que o paladar ferramentas abre muito lentamente. Eu estou usando o presentModalViewController padrão: animado: chamada para exibir as ferramentas, e eu tentei envolvê-lo em um bloco de código como este para acelerá-lo:

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration: 0.1];
[self presentModalViewController:settings animated:YES];
[UIView commitAnimations];

Infelizmente, isso não funciona. Se você disser animado: NÃO funciona melhor, mas a visualização de tela de desenho subjacente é removido imediatamente (desde o controlador pensa que já não é visível), e assim a animação ocorre sobre um fundo branco

.

Alguém já fez isso antes que estaria disposto a oferecer alguns conselhos? Eu aprecio isso!

Foi útil?

Solução

A pergunta semelhante é pedido aqui .

Você também pode alterar a velocidade usando esta técnica, mas na minha experiência, ele faz isso sobre um fundo branco, como você sugeriu.

Outras dicas

Editado:. Adicionou uma outra opção com contenção controlador para iOS 5 e posterior

Outra solução é definir o espaço de tempo da camada.

Isto é feito através do estabelecimento de velocidade de CALayer. Para retardar o baixo animação, pode-se usar:

MytransparentVCViewController *vc = [[MytransparentVCViewController alloc] initWithNibName:@"MytransparentVCViewController" bundle:nil];
// Makes all animations 10 times slower
// To speed it up, set it to multiples of 1: 2 is 2 times faster, 3 is 3 times faster etc
vc.view.layer.speed = 0.1; 
[self presentModalViewController:vc animated:YES];

Note que a solução proposta no post ligado não vai funcionar se o seu objetivo é mudar a velocidade da animação do controlador de vista modal você está prestes a presente (por exemplo, se você usar UIModalTransitionStyleCoverVertical).

A velocidade da camada não é um valor absoluto, mas uma função do espaço de tempo pai que camada (a menos que a camada está na raiz da hierarquia de camadas é claro). Por exemplo, quando você define a velocidade de uma camada a 2, suas animações será executado duas vezes mais rápido em comparação com animações que do pai camada.

Outra opção é usar vista controlador de contenção. (IOS 5 e posterior)

http://developer.apple.com/library/ios/DOCUMENTATION/UIKit/Reference/UIViewController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006926-CH3-SW81 .

Você tem total controle sobre a animação com transitionFromViewController de UIViewController: toViewController: Duração: opções: animações: conclusão:.

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