Pergunta

Estou desenvolvendo meu primeiro aplicativo para iPhone, e eu fiz-lo após a "máquina" e agora estou encerrando ajuste e acabamento detalhes.

Eu tenho uma visão que desliza da parte inferior da tela para o painel minha configurações. A visão em si tem uma opacidade de 0, e tem uma vista privilegiada UIImageView dele com um PNG criar o fundo real para a vista, atrás dos controles. Eu estou usando o construído em chamadas de animação para UIView, como em;

[self.view addSubview:settingsViewController.view];

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];

frame.origin.y = 200.0;
settingsViewController.view.frame = frame;

[UIView commitAnimations];

Infelizmente, a animação no dispositivo é instável. O PNG Estou usando como meu fundo é transparente apenas nos mais altos 30 pixels em toda a sua largura. Se eu usar um PNG sem a transparência, a animação é suave.

A aplicação em si é altamente gráfica, para que a vista está animando para fora por cima de uma tela cheia de outros PNGs.

Eu seria extremamente surpreendido se o dispositivo não consegue lidar com este tipo de animação sem problemas, o que me leva a crer que eu preciso para refinar minha abordagem. Pensamentos que eu tive até agora incluem;

Talvez eu preciso usar Core Animation diretamente? Será que cache a vista atrás as configurações painel antes animadora ser benéfico de alguma forma?

Este é um território novo para mim, e eu sei que deve haver maneiras de otimizar que são consideradas boas práticas. Obrigado pelo seu tempo!

Foi útil?

Solução

Ele não importará se você usar o Core Animation "diretamente" ou animar a propriedade centro: é irregular porque o hardware de gráficos tem de composto a imagem transparente com o fundo em cada quadro da animação. Você mesmo disse que o uso de um PNG completamente opaca faz a animação suave.

Tente executar o aplicativo sob Instruments, a ferramenta Core Animation tem algumas caixas que destacam áreas compostas em tempo real e que pode lhe dar algumas dicas sobre re-fazer o seu desenho.

Se apenas os top 30 pixels precisam ser transparentes, pode valer a pena a divisão do fundo em duas exibições, uma faixa de 30 pixels na parte superior (transparente) eo resto (opaco). Se for a composição de toda a visão cada quadro, que a mudança pode ser suficiente para deixá-lo saber que só tem de compostos apenas os 30 pixels no topo.

Outras dicas

Eu tive alguns problemas com animar a moldura no passado, tente animar a propriedade centro vez.

Além disso, o que você precisa a transparência na imagem de fundo para? não será possível para você usar apenas aquela imagem como fundo da vista conter e eliminar a necessidade do UIImageView?

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