2013-09-23 16 views
39

私は、iOS 7のストーリーボードでUIDatePicker要素を使用すると、何か変わってきています。ストーリーボードでは、日付ピッカーの高さは固定されています。実際には、要素はそれより多くのスペースを占めます。したがって、このiOS 7 UIDatePickerの高さの不一致?

Storyboard

この変身:

Simulator

ので、私は推測し、日付ピッカーが実際に使用されますどのくらいのスペースeyeballing、その下のすべてのものを下に移動する必要があります。これはバグですか?私は何か間違っているのですか?はっきりするために、日付ピッカーは完全に透明です - その周りの道を見つけることができません。一番上の白い背景はメインのUIViewで、灰色の背景はコンテナビュー内に埋め込まれたUITableViewの背景です。

+0

あなたはUIDatePickerに「同じ高さ」の自動レイアウトの制約を追加し、それを削除した場合、高さを日付ピッカーは216pxに固定されます。 – AnsonL

答えて

39

ストーリーボードでUI(Date)Pickerを使用すると「リアリティ」(216.0)と異なる高さ(162.0)があることが確認できます。したがって、「実際の」日付ピッカーの高さに合わせてスペースをコンテナビューに調整するか、自動レイアウトを使用して解決する必要があります。

+1

これは単なるバグだと思いますか? – Andrew

+2

はい、私はそう思います。 –

+1

コントローラでedgesForExtendedLayout = UIRectEdgeNoneを設定しようとしましたか? – dwery

20

私が見つけた面白いトリックです:UIDatePickerを高さ162ポイントの拘束を持つ専用のビューの中に入れてください(この新しいスーパービューにピッカーの上下から0点の垂直方向の拘束を加えてください)。これは、ピッカーが162ポイントのサイズを維持するように強制する効果があるようです。

サブビューをクリッピングするオプションを追加して、UIDatePickerが新しい刑務所から逃げないようにすることができます。

EDIT:さらにいくつかのテストを行った後、UIDatePickerに162ポイントの高さ制約を追加するだけで、 "IBサイズ"が維持されるようです。そして、アンドリューさんのコメント@答えるために、ここではそれがどのように見えるかです:

UIDatePicker constraint to 162 point in height

+0

それは車輪の底を切り取っていませんか?それは216pxになるように設計されているようです。 – Andrew

+0

いいえ、この高さのために特別に再描画されているようです。私の編集を参照してください。 – MonsieurDart

+1

うわー、プロットは濃くなります!編集していただきありがとうございます。これは参考になる情報です。 – Andrew

1

あなたは、単にそれを幅と高さ制約を与えることで、幅と高さを変更することができます。それをしなければ、UIDatePickerはちょうど奇妙に動作します、私は見つけました。

0

私のUIDatePickerオブジェクトでclipsToBoundsプロパティをYESに設定すると助かりました。

あなたが直接クリップサブビューのチェックボックスを選択することができますXIBのために
datePicker.clipsToBounds = YES; 

関連する問題