2016-05-22 4 views
1

Meine Apps verfügen über einen Root View Controller, der Containeransicht und Anzeigenbanner enthält. Der untere Teil der Containeransicht wird mit Auto Layout an der Oberseite des Ads-Banners fixiert.Werbebanner entfernen und App nicht zu Vollbild werden lassen

Meine Anforderung ist, wenn Ads Banner entfernt wird, muss die Containeransicht auf Vollbildgröße geändert werden.

Ich kann es nicht tun. Ich habe das Ads-Banner entfernt, indem ich es entweder auf null gesetzt oder aus Superview entfernt habe. Die Containeransicht bleibt jedoch immer noch gleich groß und hat dieselbe Position, sodass am unteren Rand des Ads-Banners ein leerer Bereich verbleibt.

Ich versuchte auch neue Einschränkung zu Container-Ansicht mit diesem Code

containerViewBottomConstraint = NSLayoutConstraint(item: containerView, attribute: NSLayoutAttribute.Bottom, relatedBy: NSLayoutRelation.Equal, toItem: view.superview, attribute: NSLayoutAttribute.Bottom, multiplier: 1, constant: 0) 

Aber dann stellen Sie die App stürzt mit diesem Fehler.

Beenden app aufgrund abgefangene Ausnahme 'NSInvalidArgumentException', Grund: ‚* + [NSLayoutConstraint constraintWithItem: attribute: relatedBy: toItem: attribute: Multiplikators: Konstante:]: Ein Multiplikator von 0 oder ein nil zweite Element zusammen mit Eine Position für das erste Attribut erzeugt eine unzulässige Einschränkung einer Position, die gleich einer Konstanten ist. Standortattribute müssen paarweise angegeben werden.

RootView

+0

FYI, sagte Apple: ** ["Das iAd App Network wird ab dem 30. Juni 2016 eingestellt."] (Https://developer.apple.com/news/?id=01152016a) **. – Pang

Antwort

2

Lassen Sie uns sagen, dass die Ad Banner Höhe 50 ist, erhalten so nur die untere Beschränkung des Behälters Ansicht als Ausgang zu Ihrer Klasse.

stellen Sie dann die Einschränkung, indem Sie wie:

containerViewBottomConstraint.constant = -50 

Sie könnten self.view.layoutIfNeeded() um aufrufen müssen Sie die Ansicht mit neuen Zwang zu aktualisieren.

Viel Glück!

+0

Danke. Ändern Sie einfach die Beschränkung, um an Bottom Layout Guide anstelle von Ads Banner zu pin. und setze es auf 0 in viewWilAppear Jetzt Container ist Vollbild. Aber es bringt ein neues Problem. Ich lösche die App vom Gerät, um den In-App-Kaufverlauf zu löschen, und installiere ihn erneut von Xcode. Jetzt stürzt App in AppDelegate mit einem Fehler ab. 'NSInternalInconsistencyException', Grund: 'ADBannerView muss Teil einer Ansichtshierarchie sein, die von einem UIViewController verwaltet wird' bitte informieren. –

+0

@AeyKungTaemin bitte geben Sie mir weitere Details! – AaoIi

+0

Ich weiß, was Fehler verursacht. Ich legte self.canDisplayBannerAds = true in viewWillAppear. Zuvor habe ich es in ViewDidLoad. Aber sollte ich es sagen. weil ich Ads Banner bereits über IB hinzugefügt habe. –

Verwandte Themen