xibを使用することとコードを介してページ要素を追加することの違いは何ですか?
xibを使用している場合、メモリはどのように割り当てられますか?
xibを使用することとコードを介してページ要素を追加することの違いは何ですか?
私が知っている唯一の本当の違いは、コードの使用は素晴らしいことであり、UIKitがどのように機能するかを理解するために初心者に推奨されています。
xibを使用している場合、メモリはどのように割り当てられますか?
オブジェクトを手動で作成する場合と同じですが、たとえば、実行するのはView Controllerでは[[UIImageView alloc] init]
なく、UIKitのデフォルトのファクトリクラス(ほとんどの場合、のプライベートサブクラスNSCoder
)です。
XIBを使用することと、オブジェクトの作成/レイアウトにコードを使用することには、明らかではない大きな違いが1つあります。InterfaceBuilderは、すべてのインターフェイスクラスタイプのすべてのプロパティの設定を提供するわけではありません。一部のプロパティでは、コードを使用するだけです。
いくつかのことは、Interface Builderで行うのが難しい/面倒であるか、不可能でさえありますが、コードで行うのは簡単です。少なくともios3/4の時代には、インターフェイスビルダーでタイトルバーをカスタマイズするとともにナビゲーションコントローラーをセットアップするのは本当に苦痛でした。私はいつもこのためのコードを使用していました。
XIBはシリアル化されたオブジェクトのみで構成されているため、Interface Builderを使用したり、コードでインターフェイスオブジェクトを実装したりしても、オブジェクトが割り当てられた後のメモリ使用量に違いはありません。それぞれの方法には長所と短所があります。主に、コードでインターフェイスオブジェクトを作成することで、インターフェイスの動作と外観をより細かく制御できる場合があります。一方、Interface Builderを使用すると、グラフィカルインターフェイスにより、オブジェクトのレイアウト作業が簡単になります。