Swift iAd - Mehr als 10 Instanzen von ADBannerView warning und CGAffineTransformInvert: singular matrix output

8

Ich versuche also, ein einfaches iAd-Banner in meiner Anwendung einzurichten, aber ich bekomme diese zwei Warnungen in der Ausgabe:

%Vor%

und

%Vor%

Dies ist, was ich verwende, um meine ADBannerView :

zu implementieren %Vor%

Ich habe versucht, dies hinzuzufügen, um den ersten Fehler zu stoppen: (hat nicht funktioniert)

%Vor%     
Luke Martin 14.02.2015, 10:41
quelle

3 Antworten

18

Das Problem ist, dass Sie jedes Mal, wenn Sie Ihre Ansicht laden, eine neue Instanz von ADBannerView erstellen. Was wir tun müssen, ist ein ADBannerView einmal in unserem AppDelegate.swift zu erstellen und dann dieses ADBannerView darzustellen, auf dem wir in allen Ansichten ein iAd Banner haben möchten. Dies wird auch als Shared iAd Banner bezeichnet . In diesem Beispiel habe ich ADBannerView in meinem AppDelegate.swift erstellt und dann zu meiner ViewController.swift hinzugefügt.

AppDelegate.swift

%Vor%

ViewController.swift

%Vor%

Vergessen Sie nicht, den Code aus Ihrer zuvor hinzugefügten Funktion viewWillDisappear(animated: Bool) zu entfernen. Wenn Sie auf das Banner klicken und es dann ablehnen, wird diese Funktion aufgerufen, und unser Banner wird aus unserer Sicht entfernt. Wenn Sie unseren Banner-Delegaten gleich zu Null setzen, wird dies zu Problemen führen.

    
Daniel Storm 20.02.2015, 22:18
quelle
1

Wenn Sie sich nicht um die Größe, Position, Fehlerbehandlung und die Delegiertenmethoden Ihrer Bannerwerbung kümmern möchten, können Sie auch Folgendes verwenden:

%Vor%

Das hat den Fehler in meiner App gelöst, weil Apple sich auch um die Anzahl der Instanzen kümmert

Ich habe ein kurzes Tutorial dazu geschrieben: Link

    
Stefan 07.07.2015 20:47
quelle
1

Wenn Sie möchten, dass das Banner zwischen den Registerkarten verbleibt und beim schnellen Wechseln der Registerkarten nicht verschwindet, müssen Sie den iAd Suite-Ansatz verwenden: Ссылка (Schau dir die Datei BannerViewController.m an - nicht in Swift, aber es ist nicht schwer, sie zu konvertieren)

Bei diesem Ansatz müssen Sie auch nicht die View-Controller in Ihren Tabs ändern. Sie müssen lediglich eine Beziehung zwischen Ihrem Tab-Controller und einem View-Controller haben, in den die Container-Ansicht eingebettet ist. Mach das in deinem Storyboard. Außerdem müssen Sie für jede Registerkarte die benutzerdefinierte Klasse zu BannerViewController festlegen und Ihren Inhalt in die eingebettete Ansicht einbetten. Sehen Sie sich diesen Beitrag an, um Details zum Storyboard zu erfahren: Ссылка

Wenn Sie kein Storyboard verwenden, müssen Sie BannerViewController als übergeordneten Ansichtscontroller für jede Registerkarte festlegen.

    
Ilya Vinogradov 22.03.2016 15:51
quelle

Tags und Links