84

私は神の愛のために、このサイズ変更されたスーパービューのコツを理解できません。

私はUIView *superview with 4を持っていUILabelsます。2 つは他の 2 つのヘッダーとして機能します。

4 つすべてのコンテンツは、データベースから動的に取得されます。

SizeToFitvs SizeThatFits:(CGSize)vs 、またはのいずれかUIView systemLayoutSizeFittingSize:を渡します。UILayoutFittingCompressedSizeUILayoutFittingExpandedSize

プログラムで自動レイアウトを使用し、スーパービューの高さをダミーの数値以上に設定しました。

SizeToFitこれらのvs sizeThatFits:(CGSize)vsをどこでどのように使用し、 または のいずれかUIView systemLayoutSizeFittingSize:を渡します。ここでスタックに関する多くのヒントを読みましたが、結局何もありませんでした。UILayoutFittingCompressedSizeUILayoutFittingExpandedSize

スーパービューの制約を特定の場所で再計算する必要がありますか? コントローラークラスで高さを「@property」に設定し、削除して再読み込みすることはできますか? Atm 私はすべてをどこにでも置こうとしました。それでも、ダミーの高さとテキストが外側に浮かんでいる同じサイズの最終結果が得られます。サブビューで clipsToBound を設定した後でも。

私は私の髪を引っ掻いています.. 助けて

4

4 に答える 4

24

コンテナー ビューを使用する

次の例では、30x30 の画像がありUILabel、プレースホルダー テキストを含むビューよりも小さいです。含まれているビューは、少なくとも画像と同じ大きさにする必要がありましたが、複数行のテキストを含むように拡大する必要がありました。

視覚的な形式では、内側のコンテナーは次のようになります。

H:|-(15.0)-[image(30.0)]-(15.0)-[label]-(15.0)-|
V:|[image(30.0)]|
V:|[label(>=30.0)]|

次に、含まれているビューをラベルの高さと一致するように設定します。これで、含まれているビューがラベルのサイズに乗ります。

@smileyborg が彼の回答で指摘したように、コンテンツをスーパービューに厳密に接続すると、単純なコンテナー ビューによってコンテンツが大きくなる必要があることがレイアウト エンジンに通知されます。

黄色の配置長方形

黄色の配置長方形が必要な場合-UIViewShowAlignmentRects YESは、スキームの実行引数のリストに追加します。

複数行の UILabel

于 2014-01-28T13:51:25.577 に答える