Warum wird meine UIView-Unteransicht nicht im übergeordneten Objekt gerendert? (Code beigefügt)
Warum ist meine benutzerdefinierte UIView
nicht Rendern innerhalb der UIView
container von Eltern? Was ich also habe ist:
- MainViewController - hat eine
UIView
"customViewContainer
" (die nimmt nicht den ganzen Bildschirm), und - CustomView - ist ein
UIView
mit einer XIB-Datei - es ist dieUIView
hier, dass, wenn es gemacht wird (mit AspectFit) ist die Leistung außerhalb der Grenzen des übergeordneten "customViewContainer
"
Den code verwendet, um setup die benutzerdefinierte Ansicht ist dieser Auszug aus MainViewController:
<< cut - siehe Update2 weiter unten >>
Also ich kann nicht sehen, warum die CustomView
Ansicht wird gerendert in einer Weise, die im Bereich größer sind als die Eltern customViewContainer
? Was ich will, ist für die customview
passen in das übergeordnete "customViewContainer
" ganz pro die AspectFit
Ansatz.
Dank
BEARBEITEN 1 (Hinzugefügt Klärung) - Wenn ich "clip " Untersichten" in der übergeordneten Ansicht dann macht es dann clip Dinge, aber was ich wirklich brauchen, um machen die benutzerdefinierte Ansicht in der übergeordneten Ansicht-Bereich (nicht die gesamte Fläche des Bildschirms). Also brauche ich (a) das Zentrum der benutzerdefinierten Ansicht, in der Mitte werden von der übergeordneten Ansicht und (b) eine benutzerdefinierte Ansicht zu AspectFit in der übergeordneten Ansicht richtig. Irgendwelche Ideen?
EDIT 2 - Update
sorry - copy/paste-Fehler mit dem code in der ursprünglichen Frage - kann nicht scheinen, um es zu Bearbeiten, so werde ich eine korrekte version unten - also zu klären:
MainViewController
- hat eine UIView
"containerView
" (die nimmt nicht den ganzen Bildschirm), und CustomView
- ist ein UIView
mit einer XIB-Datei - es ist die UIView
hier, dass, wenn es gemacht wird (mit AspectFit
) ist die Leistung außerhalb der Grenzen des übergeordneten "containerView
"
Mit dem code unten funktioniert diese nun Sinn machen? Der Grund für diesen code ist, ich habe eine benutzerdefinierte UIView
ABER ich habe eine XIB-Datei zugeordnet, so dass dies der einzige Weg war, um meine MainController
Sicht in der Lage sein, es zu benutzen. Das heißt, eine container-Ansicht in der MainController
view
und dann programmgesteuert hinzufügen CustomView
in der container-Ansicht.
Re "So stellen Sie die frame-oder in der Mitte der Ansicht, dass Sie hinzufügen werden, was Sie wollen, es zu sein" - werden Sie sagen, ich habe programmgesteuert/manuell die dimension der CustomView zu werden, was ich will (in Bezug auf die übergeordneten containerView)?
Was ich hoffte war, es war ein Weg mit dem declaritive layout-Einstellung auf, wie einige in der Lage sein zu sagen: "Laden Sie die Benutzerdefinierte Ansicht aus der XIB-Datei, und die aspectFit dieser Ansicht, in der selbst.containerView", aber ich fange an zu Fragen, ob dies möglich ist?
AKTUALISIERTEN CODE UNTEN (Fehler in der ursprünglichen Frage, wenn ich kopieren/eingefügt und geändert Variablen-Namen, etc)
- (void)viewDidLoad
{
[super viewDidLoad];
//Load the custom Altimeter View into this UIControllerView's container UIView for it
NSArray *nibs = [[NSBundle mainBundle] loadNibNamed:@"Customview" owner:self options:nil];
for (NSObject *obj in nibs) {
if ( [obj isKindOfClass:[Customview class]]) {
Customview *cv = (Customview*)obj;
[self.containerView addSubview:cv];
break;
}
}
//UI Layout
self.containerView.layer.borderWidth = 2;
self.containerView.layer.borderColor = [[UIColor redColor] CGColor];
}
InformationsquelleAutor der Frage Greg | 2011-07-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen Sie, ob der "Clip " Untersichten" - Eigenschaft der übergeordneten auf die IB-Datei aktiviert ist.
Ich denke, der entsprechende code ist
self.view.clipsToBounds = YES
.wenn dies
NO
Untersichten, zieht außen sichtbar sein wird, als wenn es gezeichnet wird auf die Muttergesellschaft.InformationsquelleAutor der Antwort Mugunth