Wie eine Untersicht füllen seine superview
Ich kann nicht finden die Antwort hier sowieso, noch sehe ich eine doppelte Frage.
Mein code ist einfach. 3 UIView, Eltern, von und zu, entfernen Sie aus von den Eltern, und fügen Sie die Untersicht. + add animation, aber das ist nur doodads.
Nun, das problem ist, wenn ich das Tue, ist das dann bekommen offsetted. Es ist, als wenn es nach unten gedrückt.
Ich noch hinzufügen.frame=ParentView.Rahmen; um sicherzustellen, dass es funktioniert. Tut es das nicht.
Was soll ich getan haben?
+ (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];*/
}
Habe ich herausgefunden, hier die Lösung. Stellt sich heraus, der Rahmen ist
Zu.frames: {{0, 0}, {320, 372}}
Jedoch, wenn ich die entfernen kann.frame=ParentView.Rahmen der Rahmen ist auch
{{0, 20}, {320, 460}}
Ich Frage mich, warum? 20 Punkte scheinen den Abstand der status-bar. Wo können wir dieses Bild im InterfaceBuilder?
Ich statusbar zu keiner im SimulatedMetric Abschnitt.
- Objective-C-Konventionen erwarten Variablen beginnen mit einem Kleinbuchstaben (Großbuchstaben sind für die Klasse/Protokoll nur Namen). Bitte bleiben Sie bei Ihnen. Ihrer (zukünftigen?) Mitarbeiter werden es Ihnen danken.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint, Sie missverstehen die Rahmen und Grenzen, überarbeiten Ihren code, um
To.frame=ParentView.bounds;
sollte OK sein.Verwandte: Warum gibt es ein Rahmen-Rechteck und ein bounds-Rechteck in einem UIView?
frame
ist in den Koordinaten der superview superview ist.bounds
ist in den Koordinaten der view. Wenn Sieframe
und der superview versetzt ist er innerhalb der übergeordneten, das funktioniert nicht richtig.Fix "
20 points
" Differenz-von unten in Untersicht und Blick in Swift: