2016-11-22 4 views
-1

パブリッシャーがネイティブUIに従って広告をデザインできるようにSDKを構築しようとしています。具体的には、あなたが例を見れば、私はGoogleのネイティブエクスプレス広告から取った:iOSに配置された「CSS like」ビューの実装に最適な方法

  1. 各コンポーネントの位置を、のために:

    enter image description here

    は私が設定できるようにコンフィギュレーションファイルを使用したいです上部または下部の「インストール」ボタン、画像または画像の上のテキストなど

  2. 広告コンテナーのサイズ

すべてのコンポーネントを含むxibで実装しようとしましたが、実行時にいくつかの設定ファイルに従って制約を設定しようとしました - これまではうまくいかないと言わざるを得ません。

私はFacebook ComponentKit(http://componentkit.org/)も見ましたが、UITableViewにはより適していて、一般的なビューではないようです。

このチャレンジにアプローチするにはどうすればよいと思いますか?お勧めするOOTBソリューションはありますか?同様のことをしたサンプルプロジェクトはどれですか?

おかげで、

+2

CSSが好きな人は、CSS(とウェブビュー)を使用してみませんか?これは、Appleが同様の状況(つまり、iTunes Storeインターフェイス)で行っていることです。 – matt

+2

私はマットの提案を2番目にします。しかし、本当に制約を使用したいと思っていて、どのビューが周りにあるのかが分かっている場合は、ビジュアル形式のすべての制約をシリアル化してアプリケーションに渡すことができます。さあ、文字列の配列でjsonの応答を言う。 –

+0

@FernandoMazzonそれは巧妙な考えです。私は視覚的なフォーマットの文字列を、ネットワーク通信可能な制約のエンコード方法として容易に考えることはありませんでした。 – matt

答えて

-1

あなたはのUIViewControllerから継承することで、独自のViewControllerをimplementierすることができます。次に、メソッドViewDidLayoutSubviewsを上書きすることができます。このメソッドでは、ビュー上のui要素の位置を設定できます。これは相対的な完全なサイズで行うことができます。 Herrはいくつかの例です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); 
    } 

あなたが見ることができるように、動的に計算されます。要素の実際の位置を計算する位置を取る(たとえば列挙型)メソッドをビューコントローラに追加するだけです。

関連する問題