2011-09-17 11 views
6

他の人とインターフェイスビルダーファイルをマージすることは、本当に難しいことです。 XIB xmlはNIBよりはるかに優れていますが、xmlの場合でも、変更を手動でやり直すだけではなく、マージして一貫性のある有効なXIBを取得するのが難しい場合があります。チーム環境でマージする際のInterface Builder(XIB)またはコード?

私は他の人々が潜在的にXIBsに衝突することができ、複数の人々を持っている人やっていると思いまして。

は、すべてのコードを行くための配慮をマージしましたか?レイアウトのためだけにXIBを使用し、残りはコード化していますか?または、XIBをマージすることに幸運をもたらしたことがありますか?

EDIT:私の現在のアプローチは、厳密なレイアウト(コードに苦労して苦痛なもの)と、コードを使ってすべてのオプションとデータを設定するためです。私はコードをマージするほうがはるかに簡単ですが、コードでコントロールをレイアウトするのは面倒です。思考?

答えて

2

すべてのコードを検討する際に合併しましたか?

はい、いいえ、および "の一部"。人々は

  • UI
  • 必要な実装の品質の複雑さを関与

    • :それはのようなものに依存します。
    • 実装

    の予想寿命しかし、はい、それはされており、それは多くの場合だけで簡単ではありませんときである - そうでなければ、あなただけの小さな断片にXIBsを分解することによってそれを戦います。それは、あなたが直面していることに応じて、かなりうまくいく(またはそうでない)ことができます。

    レイアウト用にXIBを使用し、残りの部分をコードしていますか?

    は多くの依存します。

    • XIB-onlyには制限があり、コードの複製によく似ています。プロトタイプ作成には時々使用しますが、他の誰かが好むものなので他の時間に使用します。
    • "どちらも少しです"では多くの接着剤が必要です。時には、かなり混乱する可能性があります。 "そのアクションはどこですかは本当にに設定されていますか?"もちろん、これはまた、XIBとプログラム的分離のバランスが良いと考える人もいます。 XIBがシンプルになればなるほど、調整する必要が少なくなり、マージの競合が起こりにくくなります。
    • コード専用ですが、WYSIWYGを好む人がいて、プログラムでUIを書くのに慣れていない人がいます。また、品質、再利用可能性、および保守性が要件ではない場合(たとえば、プロトタイプを叩くなど)、コードのみが過剰使用される可能性があります。

    それとも、あなたは運マージXIBsを持っていたし、時間をかけてあなただけ手動で読んで良くなりますか?

    実際の運がない - 小さなコンポーネントに分割するだけです。残念ながら、Xc4のエディタでは、(IB3の)Decompose Interfaceオプションは利用できません。

  • +0

    ありがとう - 良いフィードバック。 – bryanmac

    1

    私はあなたが言及としてIBは、レイアウトのための優れていることが判明しているが、おそらくそれは、私がこのway.Plusコードを上げた原因は私だけだが、レイアウト以外の方法より多くの再利用可能です。私の知る限り、実行時に心配の両方私はその約100%わからないけれども同じように行動するよう

    。プロトタイプは、コードよりもIBのほうが苦痛ではありません。私は確かにそれを知っていますし、クライアントはコードのプロトタイプ化に価値を持ちません。

    +0

    は、コードがより再利用可能であることに同意し、また、IBの方がレイアウトが良いと合意しました。それは私の現在のアプローチです(IBの厳密なレイアウトと、コードのコントロールを設定して保存し、貼り付けと差分を簡単にコピーできます)。悪いマージケースでレイアウトをやり直さなければならない場合は、厳密なレイアウトで再バインドするのですばやいです。他の人から聞いて待っています... – bryanmac

    +0

    これは基本的に私が来た結論であり、簡単なマージのための他の提案は聞いていないので、これを答えにしています。コードはより再利用可能(カットアンドペースト)で、インターフェイスビルダーでは厳密なレイアウトが最も簡単です。 – bryanmac

    +0

    その1人に同意してください! –

    0

    私がやっていることは、マージしようとするのをやってもらえません。ブランチバージョンを完全に受け入れるだけです。つまり、誰がインタフェースコードを変更するのか、そしてコミットとアップデートに関して、実際には問題は見つかっていませんが、あなたの環境に依存していると思います。 インターフェースビルダーの使用を止めるための言い訳として使用しないでください。他の人のコードを掘り下げてボタンを見つけようとするよりも悪いことにはならないので、使用がクリックされたときに何が起こるかを調べることができます。 Interface Builderなしでは、MVC分離を尊重していません。

    +1

    MVCはInterface Builderに指示しません。私は複数のプラットフォーム上で複数の言語でMVCパターンをコード化しています。いくつかはデザイナーと、一部はデザイナーと一緒にいるMVCはあなたのビューがあなたのコントローラとは別のものであることを指示します。ビュークラス、コントローラクラス、xibを持たないモデルクラス、およびMVCを尊重することは可能です。 MVCは1978/1979にXerox Parcに戻り、インタフェースビルダーが存在しないことを確信しています:) http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html – bryanmac

    +0

    あなたは正しいです、私はインタフェースビルダーを使用していないiOSアプリの経験からもっと話しています。ビューコントローラにすべてのビュービルディングコードが貼られている傾向があります。 –

    関連する問題