iPhone - Como animar um botão quando pressionado?

Existe uma maneira de fazer uma animação personalizada ao clicar em um botão do iPhone? Eu gostaria de algo como o botão da App Store - ele mostra o preço e, quando você clica nele, ele muda de cor e o texto muda para comprar agora. Quando você clica nele novamente, ele conclui a compra.

O UIViewAnimationTransition contém apenas alguns valores que não fornecem a funcionalidade completa. É possível fazer algo assim, mas com a animação:

<code>- (IBAction) changeButtonDisplay:(id)sender {

  [UIView beginAnimations:nil context:NULL];
  [UIView setAnimationDuration:0.8];
  [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:purchaseButton cache:NO]; //the built in UIViewAnimationTransition values don't provide enough flexibility

  [purchaseButton setTitle:@"Buy Now" forState:UIControlStateNormal];
  [purchaseButton setBackgroundColor:[UIColor greenColor]];
  [purchaseButton addTarget:self action:@selector(purchaseItems:) forControlEvents:UIControlEventTouchUpInside];

  [UIView commitAnimations];

}
</code>

Esse código funciona e exibirá a transição adequada e permitirá que o segundo clique execute a ação adequada, mas o título e a cor mudam instantaneamente, não em uma animação suave. É possível fazer tal animação facilmente, tenho que criar uma subclasse UIButton e fazer a animação "manualmente"? Em caso afirmativo, qual método eu teria que substituir?

questionAnswers(3)

yourAnswerToTheQuestion