2012-09-28 11 views
14

これを行う方法はありますか?私はClass Identityを設定するだけでなく、設計されたクラスを変更したいので(オブジェクトプロパティが変わるはずです)。Xcode Interface Builder:既に配置されたオブジェクトのクラスを変更します

私はUIViewと多くのサブビューを配置したからです。今度はそれをUITableViewCellに変更したいと思います。おそらく、xibファイルを「ハッキングする」ことによって行うことができますか?

答えて

13

残念ながら、私は見つけたInterfaceBuilderでこれを行う方法はありません。カスタムクラスを変更するだけで、UIViewを必要なクラス(たとえばUITableViewCell)に変更するのではなく、目的のビューが持つ可能性があるすべてのプロパティを持たせることで、UIViewにカスタムクラスが追加されます。これはストーリーボードのXMLファイルで見ることができます。

あなたが欲しい

、たとえば、この:

<label text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" ... id="Flb-Qd-jpJ"> ... </label> 

はなく、この:

<view ... id="Flb-Qd-jpJ" customClass="UILabel"> ... </view> 

が、Xcodeのが唯一のあなたに、後者を与えています。要素全体を更新するのではなく、ビューのcustomClass属性を更新しています。

先に説明したければ、それでも入手できますが、要素のIDを同じにしてxmlファイルを自分で編集する必要があります。ここではこれをより詳しく説明する素晴らしいブログ記事があります:http://codenetwaves.blogspot.com.br/2012/09/change-view-to-scrollview-in-xcode.html

+0

また、これはここで質問された質問と重複していることに注意してください。http:// stackoverflow .com/questions/10724488/update-uiview-class-in-interface-builder – lillialexis

+0

私が思うこのアプローチを使うのはずっと安全です:http://stackoverflow.com/a/36573454/1366265 – user1366265

-1

インターフェイスビルダーでは、3番目のタブを開いてカスタムクラスを検索します。そこではUIViewをUITableViewCellに変更することができます

+1

このフィールドはカスタムクラスをコードで定義します。 Interface Builderのオブジェクトプロパティには影響しません。 – brigadir

+0

次に、ウィンドウのコンテンツサイズを大きくし、tableviewcellを作成し、ビュー内のすべてのオブジェクトをtableviewcell内にドラッグすることができます –

関連する問題