【问题标题】:Push segue is messing with constraintsPush segue 搞乱了约束
【发布时间】:2014-06-03 16:08:17
【问题描述】:

我有一个从我家UIViewController 到UITabBarController 的推送转场。我需要使用push segue,因为我需要在顶部有一个导航栏,并且我不能在导航控制器中嵌入UITabBarController。

当我执行初始转场时,它会转到UITabBarController,然后在导航栏下方和我的内容上方创建一个小边距。当我切换选项卡时,即使我切换回初始选项卡,也会删除此填充。然后,当我使用 Push Segue 的后退按钮时,我的根视图控制器失去了一些约束:我在这里有一个 collectionView,它向上推到页面上的一些按钮下方。

以前按钮有一个奇怪的变化,然后现在它们不动了,因为我修复了约束。但是,CollectionView 的限制似乎很好。

看起来更像是 CollectionView 内的项目正在向上移动,而不是 CollectionView 本身。这可能吗?我可以解决这个问题吗?

当我切换到 Modal segue 而不是 push 时,不会发生这种情况。 关于如何解决这个奇怪问题的任何建议?或者有人可以建议一个让模态转场为我的 TabViewController 工作的好方法吗?

谢谢!!

【问题讨论】:

    标签: ios objective-c uitabbarcontroller uistoryboardsegue


    【解决方案1】:

    我终于在这里修改了 Zsolt 勋爵的答案来解决这个问题。

    - (void)viewDidLayoutSubviews {
    
    if (self.searchBar.frame.origin.y == 20) {
        [self.searchBar setFrame:CGRectMake(0, 0, self.searchBar.frame.size.width, self.searchBar.frame.size.height)];
        [self.ptasksTable setFrame:CGRectMake(0, 44, self.ptasksTable.frame.size.width, self.ptasksTable.frame.size.height+20)];
         }
    }
    

    我正在检查视图中第一项的原点是否为y=20,如果是,请将 y 原点设置为 0,并将下面的 TableView 的大小增加 20 以填充空间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-02
      • 1970-01-01
      • 2012-03-19
      • 2017-07-12
      相关资源
      最近更新 更多