1) Примерно так:
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1]; //1 sec duration
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(myTransitionDidStop:finished:context:)];
//what you want to animate goes here.....
[UIView commitAnimations];
Кроме того, myTransitionDidStop: finish: context: это метод обратного вызова, который выполняется после завершения анимации.Это должно быть необязательно.
2) Да, просто скрыть все элементы.Определите во время выполнения, какие из них отображать.