下のレイアウトからの相対的な制約で問題が発生しています。UITabBarViewController 内にいくつかのビューがあります。タブから別のビューに変更して最初のビューに戻ると、ビューコントローラーは下部レイアウトをタブバーとして認識せず、ビューの下部から認識します。
ここに問題をアップロードしました: https://sites.google.com/site/rveducationapps/layoutError.png?attredirects=0&d=1
私はすでに ViewDidAppear と ViewWillAppear を入れてみました:
[self.view layoutSubviews];
[self.view setNeedsUpdateConstraints];
サブビューを 2 つのケースでログに記録しました。右側のケースと、終了してビューに戻った後のサブビューです。
subviews:(
"<UIView: 0x146b2260; frame = (210 0; 814 712); autoresize = RM+BM; layer = <CALayer: 0x146b22c0>>",
"<UIButton: 0x146a9eb0; frame = (727 672; 287 30); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x146aa070>>",
"<UITableView: 0x151d3400; frame = (0 0; 210 761); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x146b14b0>; layer = <CALayer: 0x146ade20>; contentOffset: {0, 0}>",
"<_UILayoutGuide: 0x146b23b0; frame = (0 0; 0 20); hidden = YES; layer = <CALayer: 0x146b24a0>>",
"<_UILayoutGuide: 0x146b28a0; frame = (0 712; 0 56); hidden = YES; layer = <CALayer: 0x146b2910>>"
)
subviews:(
"<UIView: 0x146b2260; frame = (210 0; 814 768); autoresize = RM+BM; layer = <CALayer: 0x146b22c0>>",
"<UIButton: 0x146a9eb0; frame = (727 728; 287 30); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x146aa070>>",
"<UITableView: 0x151d3400; frame = (0 0; 210 817); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x146b14b0>; layer = <CALayer: 0x146ade20>; contentOffset: {0, 0}>",
"<_UILayoutGuide: 0x146b23b0; frame = (0 0; 0 20); hidden = YES; layer = <CALayer: 0x146b24a0>>",
"<_UILayoutGuide: 0x146b28a0; frame = (0 768; 0 0); hidden = YES; layer = <CALayer: 0x146b2910>>"
)
特に次の点で、いくつかの違いがあることがわかります。"<_UILayoutGuide: 0x146b28a0; frame = (0 712; 0 56); hidden = YES; layer = <CALayer: 0x146b2910>>"
しかし、私はそれを修正する方法がわかりません。
編集済み:修正したと思います。ストーリーボードで UIViewController を選択し、EXTEND EDGES->Under Bottom Bars オプションを無効にしました。