私は特定のボタン(ラベルやimageViewなど)を使用してIBをデザインしています。別のxib内でのxibオブジェクトの使用
私はそのボタンの6つのオブジェクトを持っている別のxibのxibオブジェクト(ボタン)を使用したいと思います。
私は、クラス識別子を使用してプログラムで行うことができますが、私は私のlablesと画像ビューを配置し、デフォルト値とその他すべてをコードに設定しなければなりません。
IBだけで同じことをすることができるのだろうか? (もちろん、私はまだコードの値を設定するだろうが、私はlables/ImageViewのとXIBに設定するすべての残りの位置にしたい)
おかげ
編集
ので、私が最初に求めたことは理解できません。 私は今のようにしようとしています:
私はButtonTest.xib
を作成しました。 Xibの中に私はUIViewと3つのサブビュー(2つのlablesとボタン)を持っています。 インスペクタでは、UIViewクラスをButtonTest
に設定しました。 ButtonTest.mの中に私はIBで接続するサブビューのそれぞれに3つのアウトレットがあります。
次はButtonTestViewController.xib
です。 私は1つのビューを入れて、インスペクタのクラスをButtonTest
に設定しました。 私はクラスのButtonTestViewController.m
今ButtonTest
内部myTextView
コンセントにそのビューを接続し、これはButtonTestViewController.mのviewDidLoad内のコードです:
- (void)viewDidLoad {
[super viewDidLoad];
NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:@"ButtonTest" owner:nil options:nil];
ButtonTest *mainView = (ButtonTest*)[subviewArray objectAtIndex:0];
self.myTextView = mainView;
}
私が起こることを望んだ何を、ButtonTestViewControllerのビューということです。 xibはButtonTest.xibで設計したビューになります。 これはあまり起こっていません。 ButtonTestViewController.xib内のビューは同じままです。
[self.view addSubview:mainView];
それは既存のもののほかに、新しいビューを追加します:
言及する価値は、私が追加した場合ということです。
私は何をしたいのですか?
最終的にButtonTestViewController.xib
に6つのビューを持ちたいと思います。すべてButtonTest.xibテンプレートのようになり、lables値はコードで設定されます。
EDIT2
[OK]を、みんなは私はあなたが言った、それが魅力のように働いたすべてをしました。 私が今問題を抱えている唯一の問題は、ButtonTestViewController.xib
のビューがもう少し大きく、ButtonTest.xib
のビューである場合です。 これが起こると、ボタンのlableは非常にぼやけて見えます。 両方が同じサイズであれば、すべてうまくいきます。ネッド@
- 私はこれまで、フレーム文を切り替え除いて、あなたは私のInitWithCoder方法に投稿された正確なコードを使用:、私はそれを修正しようとしているIBにおけるコンテンツモードで遊んでみました
self.bounds = mainView.frame;
へ役立たず。
あなたは意味、投稿のように私はそれを使用してください:
mainView.frame = self.bounds;
それは全く働いていない、との両方のビューのサイズは同じまま。 ここで私はresizeMaskで試してみましたが、まだ動作しませんでした。
これら2つの問題を解決するにはどうすればいいですか? ありがとうございました!
編集3
私はButtonTestViewController.xib
へButtonTest.xib
ビューのサイズをリサイズ、課題の一つを解決するために管理しました。 これは
self.bounds = CGRectMake(0, 0, mainView.frame.size.width, mainView.frame.size.height);
CGRect overlay2Frame = self.frame;
overlay2Frame.origin.x = round(overlay2Frame.origin.x);
overlay2Frame.origin.y = round(overlay2Frame.origin.y);
self.frame = overlay2Frame;
(hereから取られたぼやけた問題を解決するためのコードを使用して)私が何をしたか、私はまだ解決できない他の問題です。 ButtonTest.xibのビューは他のビューと一致するように大きくなりません。
たいすべてのXIBファイル内ViewWrapperでUIViewの使用
のUIViewに拡張子を追加します。彼はその後、他の.xibファイルでMyView.xibを使用し、カスタムインターフェイスを完全に編集する方法を尋ねています。 –
マットが正しいですが、私は新しい質問で質問を編集しました。見てください。 – Idan
私は私の答えをもう少し明確に編集しました。私はこれがあなたが探しているものだと思います。 – Ned