2013-11-14 11 views
5

私はAppleを使用するのがかなり新しいですNSAutolayout。最も簡単な例では、私はデフォルトのテンプレートでタブ付きのiPhoneアプリケーションを作成したと想像することができます。次に最初のビューで私はUISegmentedControlを追加し、彼に2つの制約を追加しました。 "Center X to:SuperView"と "Bottom Space to:Bottom Layout Guide"。その後、私はアプリを実行すると、UISegmentedControlの位置は正しいですが、私が2番目のビューに切り替えて戻ったときには、UISegmentedControlが下がり、UITabBarによって隠されてしまいます。デバイスを回転させると、分割された制御位置が正しい位置に戻ります。誤ったUISegmentedControl(潜在的なバグ)

これを回避する方法はありますか?

編集:問題を表示するスナップショットはほとんどありません。

Before http://img824.imageshack.us/img824/6830/o2v2.png

After http://img5.imageshack.us/img5/2205/ksb6.png

EDIT 2:私は、一時的な解決策を見つけました。

あなたが例えばプロパティを使用してデータを保存する必要があるすべて:

@property (nonatomic, assign) CGRect fix_didLoadSegmentedFrame; 

次にあなたがUISegmentedControlを変更した値を処理viewDidLoad機能であなたが行を追加する必要があります

self.fix_didLoadSegmentedFrame = self.mapTypeSegmentedControl.frame; 

ます。また、「設定する必要があります要因 "ストーリーボードのプロパティから網膜3.5インチを適用します。

+0

にスーパーするUISegmentedControlを添付します。いい問題の説明のために+1。 – uerceg

答えて

0

Okey。そこ、このような問題を除去するための二つの可能性:

  • チェックオプション
  • を「ビルド時に削除は、」私は同じ問題を持っていませ上層
1

は、のviewDidLoadでこれを使用してみてください:

self.tabBarController.tabBar.translucent = NO;

+0

問題は解決しません。透明なビューは依然として正しく表示されません。しかし、それは醜い "ジャンプ"を解決する+1 – Szu

+0

私はストーリーボードの "不透明な底のバー"に下のバーを設定すると、とにかく私は驚いたが、それでも正しく動作しません。 – Szu