iAd unter UITableViewController in UINavigationController

7

Ich baue eine App für eine Blogseite.

Ich habe einen UINavigationController mit einem UITableViewController als Root-Ansicht.

Ich habe das in einem Storyboard erstellt, kein Problem, aber ich versuche, eine iAd-Ansicht auf den unteren Bildschirmrand zu ziehen, und xcode lässt mich nicht hinzufügen.

Es sieht so aus, als müsste ich von einer Unterklasse von UITableViewController zu einer Unterklasse von UIViewController wechseln und einfach meine Methoden delegate und dataSource in meinen Unterklasse-UIViewController einfügen.

Das scheint mir falsch zu sein. Ich versuche nur mit einer UITableView von Artikelüberschriften, mit einer Navbar oben und einem iAd am unteren Rand zu enden ...

Beratung? Vorschläge?

Vielen Dank im Voraus.

    
overeasy 25.03.2012, 03:07
quelle

3 Antworten

23

Eine der einfachsten Möglichkeiten, dies zu erreichen, ist die Verwendung der UITableView -Eigenschaft von tableFooterView . Ja, ich weiß, dass die Fußzeile am unteren Ende des Tisches bleibt, aber das muss nicht sein. Sie können den Rahmen innerhalb der Tabelle festlegen. Fügen Sie das iAd als Fußzeile hinzu:

%Vor%

Um dann den Rahmen des iAds beim Scrollen der Tabelle anzupassen, implementieren Sie die UIScrollView -Delegatenmethode: (Dies ist möglich, weil UITableView eine Unterklasse von UIScrollView ist)

%Vor%

Sie können sehen, dass die Implementierung einfach genug ist. Wir verwenden einfach contentOffset y , um zu bestimmen, wie tief der Rahmen des iAd sein sollte.

    
NJones 25.03.2012, 03:52
quelle
2

Ich habe versucht, das obige Beispiel von NJones zu verwenden, um die Position von tableFooterView anzupassen, aber ich fand heraus, dass es schwierig war, es zu verwalten, wenn die Daten neu geladen oder die Tabelle aktualisiert wurden.

Dann habe ich herausgefunden, dass dies durch Hinzufügen des iAd-Banners zu superview der Ansicht des tableViewControllers geschehen könnte.

%Vor%

Wenn das Banner geladen ist, erstelle ich eine tableFooterView, um Platz für die letzte Zelle in der Tabelle ViewController zu schaffen

%Vor%     
user1506145 27.10.2013 09:30
quelle
0

Ich musste einige Änderungen an der von NJones veröffentlichten Lösung vornehmen, da es ein Problem gab, dass die Anzeige nicht über allen anderen Zellen / Ansichten angezeigt wurde.

Stellen Sie zuerst sicher, dass Ihr tableViewController ein AdBannerViewDelegate ist:

%Vor%

Hinzufügen des AdBanners zum tableviewcontroller:

%Vor%

Der Code zum Positionieren des Werbebanners stammt von NJones, ich habe nur die letzte Zeile hinzugefügt, um das Werbebanner nach vorne zu bringen:

%Vor%

Diese Funktion wird immer dann aufgerufen, wenn die Ansicht ihre Subviews anordnet (Sie brauchen sie also nur hier, müssen nicht nach Scrollen suchen usw.):

%Vor%

Sie sollten auch die ADBannerViewDelegate-Methoden behandeln:

%Vor%     
Cesar 20.10.2015 14:39
quelle