Ik heb een bovenliggende UIView met onderliggende UIView (UILabel gebruikt in de onderstaande code) waarvan het frame is ingesteld op de grenzen van de ouder en waarvan het autoresizing-masker is ingesteld op flexibele breedte en hoogte:
UIView* parentView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
UILabel* childLabel = [[UILabel alloc] initWithFrame:parentView.bounds];
childLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
childLabel.textAlignment = UITextAlignmentCenter;
childLabel.text = @"Hello";
Ik wil het frame van de bovenliggende weergave, met name de grootte, kunnen animeren en het formaat van de subweergave kunnen wijzigen als onderdeel van de animatie:
[UIView animateWithDuration:1.0 animations:^{ parentView.frame = CGRectMake(0, 0, 160, 240); }];
Als gevolg van deze animatie zou ik willen dat de tekst van het UILabel samen met de animatie van de bovenliggende weergave animeert, zodat u visueel ziet dat de tekst verschuift van gecentreerd op (160, 240) naar (80, 120). In plaats van het te animeren, lijkt het frame van de subweergave echter onmiddellijk te worden ingesteld op de waarde die het aan het einde van de animatie zou moeten hebben, zodat u ziet dat de positie van de tekst onmiddellijk springt wanneer de animatie start.
Is er een manier om subvensters automatisch te laten weergeven als onderdeel van een animatie?