Como fazer uma subvisão preencher sua superview
Não consigo encontrar a resposta aqui de qualquer maneira, nem vejo uma pergunta duplicad
Meu código é simples. Dado 3 UIView, pai, de e para, remova de pai e adicione subvisão. + adicione animação, mas isso é apenas doodads.
Agora, o problema é quando eu faço isso, para então ser compensado. É como se fosse empurrado para baixo.
Eu até adiciono To.frame = ParentView.frame; para garantir que funcione. Não.
O que eu deveria ter feito
+ (void) AnimateSwitchingWithParent: (UIView *) ParentView From: (UIView *) From To: (UIView* ) To { /*[UIView beginAnimations:@"View Flip" context:nil]; [UIView setAnimationDuration:1.25]; [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromRight forView:ParentView cache:YES];*/ [From removeFromSuperview]; [ParentView addSubview:To]; To.frame=ParentView.frame; //If I don't do this, the subview is still off by around 20 points NSLog(@"To.bounds: %@", NSStringFromCGRect(To.bounds)); NSLog(@"From.bounds.: %@", NSStringFromCGRect(From.bounds)); NSLog(@"ParentView.bounds: %@", NSStringFromCGRect(ParentView.bounds)); //JA_DUMP (To.bounds); //JA_DUMP (To.bounds); /*[UIView commitAnimations];*/ }
Eu descobri a solução. Acontece que o quadro de Para é
To.frames: {{0, 0}, {320, 372}}
No entanto, se eu remover To.frame = ParentView.frame, o quadro também será
{{0, 20}, {320, 460}}
Eu quero saber porque? 20 pontos parecem ser a distância da barra de status. Onde podemos definir esse quadro no InterfaceBuilder?
Defino a barra de status como nenhuma na seção SimulatedMetri