まとーか鈴木

千の姿と千の技と千の風

StoryboardとXib

ブログって続かないものですね!

こんなところにアクセスしてくれた方々に厚く御礼申し上げます。

近頃、StoryboardとXibのファイルの使い分けに悩んでおります。

SBファイルの中で複雑な階層構造を持つViewを定義するのイヤじゃないですか?

私は画面遷移が多くてSBファイルが重くなるのはとてもイヤですが、 それと同じくらい、1つ1つのViewの構造が深くなるのもイヤですねん。

f:id:matouka_suzuki:20140708001221p:plain

これにConstraintsが沢山入って… さらに他人が設定したConstraintなんかわからん…なんてことに…

なので、SBファイル内で、階層が深くなりそうなViewはIBで作っています。

Storyboardで読んだとき、IBOutletプロパティがnil

IBで作ったViewをSBのプレビューで読むためにはinitWithCoderで[self addSubview:]する必要があると思うのですが、IBOutletの参照がうまく取れなくないですか?

こんなノリで。

[self addSubview:]しないとSB上で見れないけど、IBOutletがうまく動かないのはなんとも…

XibのViewはコードで色々

よって、Xibで作ったViewはSBのViewController内でaddSubviewして、AutoLayoutもコードでガリガリ指定しています。

悩み

前述の作業で、実行結果としては期待通りに動作するのですが、 やっぱりSBファイル内でカスタムViewが乗っている様子を把握したいですよね。。 なにか良い方法ないでしょうか・・?