2012-03-10 10 views
10

ストーリーボード(iOS 5)のViewControllerよりも大きいUIViewをデザインしたいと思います。ストーリーボードの任意のViewControllerの外に別のUIViewをデザインするにはどうすればいいですか?

UIViewはUIScrollViewのサブビューとして使用する必要があり、したがって既存のViewControllerのいずれよりも大きくする必要があります。どのようにStoryboardでそのようなUIViewを作成し、それを私のUIScrollViewに関連付けることができますか?

可能であれば、xibファイルなしでこれを実行したいと思います。

ありがとうございました!

+0

難しい問題ですが、これはストーリーボードの時代の前にはとても簡単でした。 –

答えて

20

viewController内側にそれを設計することができます。

//We have file called "View.xib" in our project. It contains one SINGLE view 
NSArray *xibContents = [[NSBundle mainBundle] loadNibNamed:@"View" owner:self options:nil]; 
UIView *view = [xibContents lastObject]; //safer than objectAtIndex:0 

[self.scrollview addSubview:view]; 
self.scrollview.contentSize = view.frame.size; 

ためにIB接続を作成するには、xib内のfilesOwnerクラスをviewControllerに設定し、いつものように接続することができます。

+1

これを正当化する可能性のある設計上の決定に関して、私の関連する質問/回答を見てみたいです:http://stackoverflow.com/questions/11386111 /ビューアの外にあるコントローラのストーリーボード – KPM

+0

清潔で超高速なソリューション。どうもありがとうございました。 – androniennn

+0

自動レイアウトでスタンドアロンの.xibファイルが機能しません。プロジェクト全体は自動レイアウトです。この.xibファイルで自動レイアウトを適用する方法は? – shahnilay86

2

あなたはscrollviewにUIViewを配置し、直接私がxibsを使用するよりも、他のオプションを参照してくださいませんが、それは迷惑ではありませんあなたのscrollView

+0

こんにちはUgur、私のUIViewはScrollViewよりも大きいので、コントロールの大部分は現在表示されている領域外になります。 – AlexR

+0

xibsがインターフェイスビルダーでデザインする唯一のソリューションかもしれません –

1

私は、(ViewControllerと同じ階層レベルにある)シーンに追加されたビューを編集する方法を見つけました。

残念ながら、それはhackishアクションの種類です。 私のXcodeバージョンはVersion 4.5.2 (4G2008a)です。私は実際のプロジェクトと新しい空のプロジェクトでこれをテストしました。

基本的な考え方は、Xcodeにこのような外部ビューを編集する能力があることですが、残念ながらこのモードは直接的には有効になりません。あなたのシーンの木にSubView2を見つける

 
Scene 
|- VC 
    |- View 
|- ExternalView 
    |- SubView1 
     |- SubView2 
  • 次に後藤Document Outlineパネル
  • を:私はあなたがあなたの外部ビュー内の階層の2つのレベルを持っている必要が発見した方法では

  • ダブルそれを
編集領域が表示されます

とそのCをクリックしてくださいoordinatesはプロジェクトのユーザーデータに保存されるため、必要に応じてより適切な場所に移動し、次回にはそこにあるマシン上のIBでストーリーボードを開くことができます。私は他のマシンで考えていますが、もう一度やり直す必要があります(私はそれをテストしていません)。

+0

Xcode5でこれを行う方法を見つけましたか? – MathewS

関連する問題