2017-01-23 2 views
0

Ich habe eine Eltern VC, die ein Kind VC in ihm lädt. Code in Mutter VC ist wie folgt:Subview sichtbar, aber Rahmen außerhalb Superview Rahmen

self.draggerViewController = [[DraggerViewController alloc] initWithSuperView:self.view]; 

und der Code des Kindes VC wie folgt:

- (instancetype)initWithSuperView:(UIView*)superView { 
    self = [super init]; 

    if (self) { 
     self.superView = superView; 

     [self.view setTranslatesAutoresizingMaskIntoConstraints:NO]; 
     [superView addSubview:self.view]; 

     [superView addConstraint:[NSLayoutConstraint constraintWithItem:superView attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeading multiplier:1 constant:0]]; 

     [superView addConstraint:[NSLayoutConstraint constraintWithItem:superView attribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTrailing multiplier:1 constant:0]]; 

     self.constraintDraggerAttributeBottom = [NSLayoutConstraint constraintWithItem:superView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeBottom multiplier:1 constant:0]; 
     [superView addConstraint:self.constraintDraggerAttributeBottom]; 
    } 

    return self; 
} 

Mit diesem Code ist die subview sichtbar auf seine Stammansicht und Einschränkungen angewendet werden korrekt so dass es am unteren Rand der Elternansicht platziert wird, wobei Vor- und Nachkommastellen 0 sind. ABER, der echte Rahmen der Ansicht befindet sich außerhalb der Elternansicht.

Das heißt, ich kann die Unteransicht am unteren Rand der übergeordneten Ansicht sehen, aber der Rahmen dieser Unteransicht ist frame = (0 -315; 768 35).

Wenn ich 'clipToBounds' auf 'YES' setze, wird die Ansicht auf den realen Rahmen gesetzt, aber jetzt werden die Abhängigkeiten nicht korrekt angewendet.

Wie kann ich diese untergeordnete VC in der Ansicht des übergeordneten VC an der Position platzieren, die ich mit Einschränkungen verwenden möchte?

Vielen Dank!

Antwort

1

OK, es wurde ...

ich die Höhe Einschränkung der Ansicht war zu vergessen ... Was für eine Schande ...

[superView addConstraint:[NSLayoutConstraint constraintWithItem:superView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeHeight multiplier:1 constant:0]]; 

Danke euch allen!

0

Versuchen Sie folgendes:

superView.insertSubview(self.view, at: self. superView.subviews.count) 
+0

Gleiches Problem ... Ich kann nicht verstehen, was hier passiert ... –

Verwandte Themen