36

公式ドキュメント、Stackoverflow、または Google で回答が見つからない質問に行き詰まっています。

私は経験豊富な iOS 開発者ですが、ストーリーボードは初めてです。現在のビュー コントローラーでビューをインスタンス化したいのですが、NIB でビュー コントローラーの外側に描画し、コンセントをアタッチしてコードで参照し、addSubview: などのようなものを呼び出します。オーバーレイを描画したり、現在の場合、MapView デリゲートで使用するコールアウト ビューを描画すると便利です。しかし、ストーリーボードでこれを行う方法がわかりません。

ビューコントローラーの外側にビューを持つことができないようです。ビューコントローラー内のビューは、コントローラーのビューのサブビューである必要があるか、Interface Builder でまったく表示されない必要があります (これは、外側で構成されたビューをドラッグしても問題ありません) 、従来のNIBでは、細部を微調整する必要がある場合はかなりの問題です)。

何をすべきか、どこを見るべきかについてのヒントはありますか?ありがとう。

4

3 に答える 3

30

それを行う方法はないようです。ジェイソンのコメントと同じ問題に対処するこの質問を参照してください。ただし、コンテキストは異なります。

しかし、以前のコメントで説明し始めたように、完全な回答の価値があると判断する前に、問題の意味を考えたときに以前に気付きました。カスタム ビューの設計をアプリケーションの設計から分離することは理にかなっています。フロー。したがって、Storyboards でカスタム ビューを設計できないという事実は、おそらく設計によるものです。

カスタム ビュー (再利用可能なコンポーネント) は、ビュー コントローラー (アプリケーション ストーリーボードのシーンを表す) とは大きく異なります。映画の登場人物やシーンと同じです。たまたま 1 つのシーンでそのキャラクターを使用したとしても、自分のシーンで自分のキャラクターをデザインしたくありません。ワンシーンで使えればラッキーですが、必須ではありません。だから分けなければならない。

Interface Builder を使用してカスタム ビューを設計したいという事実は、クラスにカプセル化する必要がある実装の詳細にすぎません。アプリケーション ストーリーボードでは、再利用可能なビューの特定の実装をどのように処理するかを知る必要はなく、管理する必要はありません。

うーん、私はこのブランドの尋問がもっとあればいいのに:)

于 2012-07-08T23:05:33.567 に答える
26

コンテナー ビューを使用できます。これは通常のビューのようなものです (IBOutlet UIView を割り当てることができます) が、UIViewController の外部で定義できます。

の あなたはそれを設計することができます

于 2014-02-21T22:04:15.437 に答える
2

私も同じことを考えていたのですが、実際にこれを実現することができましたが、いじり回した後、それはなくなりました。Nav Controller、View Controller、および2つのビューがあります。別のペン先でビューを作成し、このプロジェクトにインポートしました。ボタンを接続しているときに、作業中のビューが突然ViewControllerの横に表示されました。残念ながら、他のビューを表示しようとしたときに、どういうわけかそれを失い、元に戻す方法がわかりません。ビューをストーリーボードにドラッグできるようには見えませんが、ビューコントローラにのみドラッグできます。しかし、一度できれば再現可能になりました。

于 2012-11-20T13:49:35.650 に答える