2016-10-08 16 views
0

iPad用回転機能付きのアプリがあります(iPhone版は回転なし)。私のデザインでは、ストーリーボード内で、私はこの階層を持っています:UIView - UIScrollView - UIView。すべての「ビュー」は画面の全幅に設定されています。第2のUIViewは、クラスMyViewに設定されています。これは外部のxibファイルを持つクラスです。ストーリーボードとxibはどちらもポートレートモードで作成されます。iOS - 自動レイアウトの回転が期待どおりに動作しない

問題が発生しました。

  • アプリをランドスケープモードで実行すると、すべてが正常に読み込まれます。その後、 アプリをローテーションすると、すべてOKです。

  • アプリをポートレートモードで実行すると、デザインが「中断」します。コンテンツ全体がより薄いので(MyViewの終わりから画面の最後までの間に約100 + pxのギャップがあります)アプリを回転すると、デザインは壊れていますが、正しく「拡大」されます。ギャップはまだ同じサイズです。どんなに私は何をすべきか

    Unable to simultaneously satisfy constraints. 
    Probably at least one of the constraints in the following list is one you don't want. 
    Try this: 
        (1) look at each constraint and try to figure out which you don't expect; 
        (2) find the code that added the unwanted constraint or constraints and fix it. 
    (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
    (
    "<NSAutoresizingMaskLayoutConstraint:0x1545b7800 h=-&- v=-&- UIView:0x1546a8cb0.width == ScrollableContentView:0x154575da0.width - 232>", 
    "<NSLayoutConstraint:0x15458dd80 H:[UIActivityIndicatorView:0x1546afa60]-(370)-| (Names: '|':UIView:0x1546ab840)>", 
    "<NSLayoutConstraint:0x15458ddd0 H:|-(361)-[UIActivityIndicatorView:0x1546afa60] (Names: '|':UIView:0x1546ab840)>", 
    "<NSLayoutConstraint:0x1546c7080 H:[UIView:0x1546ab840]-(0)-| (Names: '|':UIView:0x1546a8cb0)>", 
    "<NSLayoutConstraint:0x1546c7120 H:|-(0)-[UIView:0x1546ab840] (Names: '|':UIView:0x1546a8cb0)>", 
    "<NSLayoutConstraint:0x154579710 H:|-(0)-[ScrollableContentView:0x154575da0] (Names: '|':UIScrollView:0x15504c000)>", 
    "<NSLayoutConstraint:0x154686ef0 UIScrollView:0x15504c000.centerX == ScrollableContentView:0x154575da0.centerX>", 
    "<NSLayoutConstraint:0x154697cc0 H:[UIScrollView:0x15504c000]-(0)-| (Names: '|':UIView:0x154547b80)>", 
    "<NSLayoutConstraint:0x154697d10 H:|-(0)-[UIScrollView:0x15504c000] (Names: '|':UIView:0x154547b80)>", 
    "<NSLayoutConstraint:0x15463b8c0 'UIView-Encapsulated-Layout-Width' H:[UIView:0x154547b80(768)]>" 
    ) 
    
    Will attempt to recover by breaking constraint 
    

、私はこの問題を削除することができません:最初の起動時には、私は、デバッガで次のエラーを得ませんでした。ほとんどすべての制約を削除しても、私は同じ問題を抱えています。

答えて

1

ストーリーボードまたはxibファイル(コントローラの名前の横にある黄色/赤色の点)で自動レイアウトの警告がないかどうかを確認してください。

xibビューを追加する際に制約を設定していますか?

content hugging priorityまたはcontent compression resistance priorityについて考えてみませんか?

+0

レイアウトの警告/エラーはありません –

+0

あなたはビュー、xib、レイアウトのセットアップコードを抽出し、すべてをgithubに入れることができますか?私たちはそれを簡単に見ることができました。また、xibをプログラムで追加するのも正しいですか?あなたはそれをしながら自動レイアウトの制約を設定しますか? –

+0

申し訳ありませんが、コード/デザインは内部的なものであり、アプリケーションが保存されるまではそのコードを「解放」できません。手動でxibを追加するのではなく、プロパティウィンドウのクラス設定を使用しています。 –

関連する問題