2016-06-23 9 views
1

AutoLayoutは、ビューのサイズですべてのステップを邪魔しているようです。AutoLayoutの制約とUIPopoverPresentationController

ユーザー入力用に使用するビューコントローラがあり、AutoLayoutは、表示サイズを667ピクセル高くするように決まっているようです。

私は、レイアウト設定、多くのコンテンツの抱きしめと圧縮抵抗の組み合わせなど多くのバリエーションを持っていましたが、私が何をしていても、ビューを667ピクセルに伸ばす方法を見つけました。

レイアウトフレーム、制約などを表示するアプリReveal(revealapp.com) を使用して、UIPopoverPresentationControllerが独自の自動サイズ設定制約を追加していることを私に示しています。

がここに提示したときに私の見解は、約...「同意する」UIButton 1000優先順位の高い30個のピクセルに設定し、私がしているにもかかわらず、

enter image description here

注意をどのように見えるべきかだ、自動レイアウトはまだ伸びていますそれは奇妙な667ピクセルの高い要件を満たすために。

私はアプリを実行すると、ここに私のポップオーバーがどのように見えるかだ...

enter image description here

と私は実行中のアプリを調べて明らかに持っている、と私はポップオーバーにそれを絞るとき、これは明らかに何かあります...示し

enter image description here

enter image description here

注UIPop overPresentationController自体には、これらの制約があります。

UIPopoverPresentationControllerによって挿入されている制約をどのように制御できますか?

+0

ポップオーバーを表示する前にポップオーバーの推奨サイズを設定していますか(ペン先ではなくコードで表示されます)。 – Wyatt

+0

@Wyatt ...私はそれを設定していませんが、私のポップオーバーのサイズは内容に応じて変わるので、どのようなサイズに設定するのかは分かります。上記のIBの画像では、テキストボックスの上にある2つのラベルは内容に基づいて動的にサイズが決められ、提示されるたびに全体の高さが変わります。高さはどのように計算すればよいですか? –

答えて

1

boundingRectWithSize(_:options:attributes:context:)NSStringを使用して、ラベルの高さを決定してください。

これを実行したら、ラベルが作成する余分な高さを追加することで、ポップオーバーのサイズを予測できます。これを使用して、提示しているビューコントローラのpreferredContentSizeプロパティを設定できます。

関連する問題