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 die UIView 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 UIViewABER 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

Schreibe einen Kommentar