2016-11-22 2 views
-1

Ich versuche, ein SDK zu erstellen, mit dem Publisher meine Anzeigen gemäß ihrer nativen Benutzeroberfläche gestalten können. Genauer gesagt habe ich, wenn man sich das Beispiel aussehen von Google india Express Anzeigen:Die beste Methode zum Implementieren von CSS-ähnlichen Ansichten in iOS

  1. jede Komponente Position für:

    enter image description here

    I setzen, eine Konfigurationsdatei zu können, verwenden möchten, Beispiel des „install“ Button oben oder unten, Text oben auf Bild oder Bild unten, etc, etc.

  2. die Größe des Ad-Containers

Ich habe versucht, es mit einer Xib zu implementieren, die alle Komponenten enthält und dann versuchen, es in der Laufzeit mit Einschränkungen nach einigen Konfigurationen Datei zu setzen - ich muss sagen, es geht bisher nicht gut.

Ich schaute auch auf Facebook ComponentKit (http://componentkit.org/), aber es scheint besser für UITableView und nicht für 1 generische Ansicht.

Was ist Ihrer Meinung nach der beste Weg, um diese Herausforderung anzugehen? Gibt es eine OOTB-Lösung, die Sie empfehlen? Irgendwelche Beispielprojekte, die ähnliche Sachen gemacht haben?

Danke,

+2

Wenn Sie CSS mögen, warum nicht CSS (und eine Webansicht) verwenden? Das ist in der Tat, was Apple in einer ähnlichen Situation tut (d. H. Die iTunes Store-Schnittstelle). – matt

+2

I second @ matt's Vorschlag. Wenn Sie jedoch wirklich Einschränkungen verwenden möchten und Sie bereits wissen, welche Sichten vorhanden sein werden, können Sie alle Ihre Einschränkungen in visueller Form serialisieren und sie an die App übergeben, wodurch diese Einschränkungen gedanklich erstellt werden. Sagen wir, eine JSON-Antwort mit einem Array von Strings. –

+0

@FernandoMazzon Das ist eine clevere Idee. Ich habe nie über visuelle Formatzeichenfolgen nachgedacht, die eine netzwerkfähige Methode zur Kodierung von Constraints darstellen. – matt

Antwort

-1

Sie Ihre eigenen Viewcontroller durch Erben von UIViewController implementier kann. Dann können Sie die Methode ViewDidLayoutSubviews überschreiben. Bei dieser Methode können Sie die Position des Elements ui in der Ansicht festlegen. Dies kann relativ vollständge Gesamtgröße erfolgen. Herr ist ein Beispiel Code in C#:

 /// </summary> 
    public override void ViewDidLayoutSubviews() 
    { 
     base.ViewDidLayoutSubviews(); 

     var tempFrame = View.Frame; 

     _settings.Frame = new CGRect(tempFrame.Width * 0.25, tempFrame.Height * 0.25, tempFrame.Width * 0.06, tempFrame.Height * 0.6); 
     _statistics.Frame = new CGRect(tempFrame.Width * 0.75, tempFrame.Height * 0.25, tempFrame.Width * 0.06, tempFrame.Height * 0.6); 
    } 

Wie Sie sehen können, wird die Position dynamisch berechnet. Fügen Sie Ihrem View-Controller einfach eine Methode hinzu, die die Position (z. B. als Enumeration) ermittelt und die tatsächliche Position für das Element (die Elemente) berechnet.

Verwandte Themen