【问题标题】:Issue with constraints on bottom layout底部布局约束问题
【发布时间】:2014-01-07 08:38:20
【问题描述】:

我遇到了一些与底部布局相关的约束问题。 UITabBarViewController 中有一些视图。当我从选项卡更改到另一个视图并返回到第一个视图时,视图控制器不会将底部布局识别为选项卡栏,而是从视图的底部。

我在这里上传了问题:https://sites.google.com/site/rveducationapps/layoutError.png?attredirects=0&d=1

我已经尝试放入 ViewDidAppear 和 ViewWillAppear:

[self.view layoutSubviews];
[self.view setNeedsUpdateConstraints];

我记录了两种情况下的子视图,右边的和退出并返回视图后:

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>>"

)

我发现有一些区别,特别是在:"&lt;_UILayoutGuide: 0x146b28a0; frame = (0 712; 0 56); hidden = YES; layer = &lt;CALayer: 0x146b2910&gt;&gt;"

但我不知道如何解决。

编辑: 我想我修好了。我在 Storyboard 中选择了 UIViewController 并禁用了 EXTEND EDGES->Under Bottom Bars 选项。

【问题讨论】:

    标签: ios layout constraints


    【解决方案1】:

    如果您要从您的 UITabBarViewController 转换到新的 UIViewController,然后尝试从该 UIViewController 回到您的 tabBarController,那么您可以简单地segue回到UITabBarViewController(segue 将带你回到你的 rootViewController 以获得你的UITabBarViewController)。

    如果您需要转换回特定选项卡,请实例化 custom segue 并使用不同的指定 VC 将其发送回不同的选项卡 em>,这可以在您的UITabBarViewController 类或您的应用程序AppDelegate.m 文件中设置。

    【讨论】:

      猜你喜欢
      • 2019-06-20
      • 1970-01-01
      • 2015-04-06
      • 2019-01-06
      • 1970-01-01
      • 2018-07-06
      • 2016-02-04
      • 2020-10-12
      相关资源
      最近更新 更多