2017-02-15 9 views
0

UIの一部として、2つの垂直スタックビューを含む水平スタックビューがあります。最初の垂直には2つのラベルが含まれています。 2番目の垂直には、私のカスタムUIViewサブクラスの2つが含まれています - それらをMyUIViewと呼んでみましょう。StackViewで利用可能な領域を取るUIViewサブクラスを取得する方法

私は(可能ならばIBで)を達成しようとしています何
+---------+-------------------+ 
| Label 1 |    ## | 
| Label 2 |    ## | 
+---------+-------------------+ 

は、水平スタックの左側には、ラベル(最大)の本来のサイズにサイズ設定されていることがあり、右側がすべてを取ります使用可能な残りの幅つまり、MyUIViewsはその幅に拡張されるはずです。だから、どれくらいの幅の画面であっても、「十分に広い」ラベルとMyUIViewが残ります。

しかし、IBと実行時の両方で、私が試しても、MyUIViewは幅が小さいか見えません。

私のカスタムビューには本質的なコンテンツサイズがないと思われますが、これを適切に処理する方法については固まっています。水平スタックを「比例」に設定する必要がありますが、MyUIViewに「すべての方法」を伝えるにはどうすればよいですか?

+0

私が試した、あなたが持っているのと同じ要件を実装するが、私は、垂直スタックビューの両方の幅で問題ありませんしています。 –

答えて

0

私はあなたと同じ要件を試して実装していますが、縦型スタックビューの幅に問題はありません。動的な幅を達成するために第1の垂直スタックビューのラベルにコンテンツ圧縮抵抗優先

私はちょうどHotizontalを置きます。

enter image description here

+0

まあ、私はチェックして、彼らはすでに75のCCRPを持っていた。これは古い制約ベースのレイアウトだったので、多少残っていたかもしれない。 – zkarj

+0

しかし、これらの設定をさまざまな配信モードで再生しているうちに、IBがいつも自分の変更をディスプレイに正しく反映しているとは限りませんでした。私は、Fillでゼロ幅の棒を比例的に、Fill Equallyに変えて、幅の半分を伸ばしてから、戻って棒を半分にします。 ...私は各設定で再度実行して、ランタイムが提供するものを確認することにしました。 "Fill"は仕事を完璧にします。 Go figure。 – zkarj

関連する問題