2016-05-02 16 views
0

私はこの1週間で数週間にわたり頭を爆発させています。 NSLayoutConstraintの組み合わせを試してみると、皆さんに尋ねる時間だと分かっていました。UIScrollViewの動的な高さの複数のコンテナビューを使用したオートアウトアウト

私のMainViewControllerには、ユーザーの活動の要約ページのように機能するニュース、友人、プロフィールなどがあります。私は別々のViewControllerのようにこれらの異なる部分を実装したいと思います。それ以外の場合、リンゴと梨を混合するでしょう。右?そして明らかに、これらは画面の高さよりも長くなるのでUIScrollViewの中に入る必要があります。

すべてを難しくするものは、これらの高さは可変長であり、サーバーからダウンロードされたコンテンツに従って実行時に決定されます。

このデザインをどのように設計するのが正しい戦略に私を導くことができますか?私はストーリーボードを使いたい。可能でない場合は、コード内ですべて実行することもできます。問題の部分は、MainViewControllerのサブビュー(UIScrollViewUIViewUIContainerView)の適切な制約を設定し、何とか適切な場所にChildViewControllerの高さを渡すことです。

また、この件に関する情報がどれだけ少ないのか驚いています。私はいつもこの種のデザインはアプリでかなり人気があると思っていました。

+0

これらのビューに固定高さ制約を設定し、必要に応じてその制約の定数値を変更する必要があると思います。 – almas

+0

UIStackViewが必要ですね。それは自動的にその本質的なサイズに基づいてコンテンツのサイズを決め、変更をアニメーション化します。 UIScrollViewの内部に配置することもできます。 – Clafou

+0

@almasしたがって、私はchildVCのIBOutlet高さ制約を作成する必要があると言っています(プレースホルダ制約が必要ですか?)、制約はどこで更新されますか? childVCのサーバコールの中で? – aytunch

答えて

0

私の経験ではUIScrollViewを使用していますが、ほとんどの場合、99%が推奨されません。それらは自動レイアウトでは使いにくく、軽微な変更によって簡単に壊れる可能性があります。 IBのコンテンツをスクロールできないので、IBで使用するのも面倒です。

このデザインでは、静的なセルを使ってを使用します(ビューには各アイテム/個人に同じ情報が含まれることを前提としています)。各ビューにはそれぞれ異なるView ControllerのContainer Viewが含まれています。

これは、自動レイアウトについて心配する必要がなくなり、コンテンツが変更されるとすぐにセルのサイズが自動的に変更されることを意味します。