Nach dem offiziellen doc auf UIView über die contentMode
Eigenschaft:Welcher Inhaltstyp bezieht sich auf den UIViewContentMode-Modus?
The content mode specifies how the cached bitmap of the view’s layer is adjusted when the view’s bounds change
Was den Inhalt in dieser Definition festgelegt ist? Ist es eine Unteransicht oder haben wir beispielsweise eine Hintergrundfarbe für eine Ansicht definiert?
Meine allererste Vermutung war, dass es zumindest für die Subviews in einer Ansicht gelten, aber zum Beispiel der folgende Code-Schnipsel wird mich nicht das erwartete Ergebnis geben, wenn sie mit dem UIViewContentModeCenter
Tag spielen:
UIView* redView = [[UIView alloc] initWithFrame:CGRectMake(80, 80, 150, 200)];
redView.contentMode = UIViewContentModeCenter;
redView.backgroundColor = [UIColor redColor];
UIView* greenView = [[UIView alloc] initWithFrame:redView.bounds];
greenView.backgroundColor = [UIColor greenColor];
[redView addSubview:greenView];
redView.frame = CGRectInset(redView.frame, -5, -5);
[self.view addSubview:redView];
Ich habe gerade eine redView eingerichtet, die eine greenView enthalten wird. Ich habe auch den Inhalt-Modus der redview auf UIViewContentModeCenter
eingerichtet - warum in dem Code, den ich schrieb, ist die greenView nicht zentriert, wenn ich den Rahmen der Eltern ändern? ist nicht was UIViewContentModeCenter
soll tun?
Danke für die Klärung!
Ps: Sie können den obigen Code im loadView
eines einfachen View-Controller-Vorlagenprojekts leicht testen.
Sicher durch den Rahmen Einstellen Sie die Ansicht neu gezeichnet werden, die die Unteransicht enthält, die an den Rahmen Grenzen gesetzt, die geändert werden? Daher wird es nicht zentriert bleiben, da die Grenzen relativ zu dem Rahmen sind. In einfachem Englisch mit den Grenzen als Rahmen ist Ihr Ursprung immer 0,0 und eine übereinstimmende Breite und Höhe –