代码之家  ›  专栏  ›  技术社区  ›  Jubia

iOS 7:使用TabBar和自动布局时视图大小会发生变化

  •  0
  • Jubia  · 技术社区  · 10 年前

    我的问题可以归结为:

    我的应用程序有一个导航栏和一个TabBar。当显示TabBar的第一个视图时,视图本身不会在TabBar下延伸;在用户点击其中一个选项后,所有相关视图都会扩展并更改大小,这使得定位变得非常困难。

    我知道我可以禁用“在顶部栏下延伸边”和“在底部栏下延伸边缘”,但这会破坏视图背景。真正的选择是找到一种方法来强制视图(或TabBar)在顶栏和底栏下方延伸 总是 ,包括起始视图。

    有一个存储库,其中包含复制此问题的代码 https://bitbucket.org/juliobiason/tabbarmisbehaviour 这里可以看到正在发生的事情的示例: http://imgur.com/lbbml6D

    1 回复  |  直到 10 年前
        1
  •  2
  •   Durican Radu    10 年前

    好的,我在你的问题上花了将近一个小时,我终于想出了一个解决方案,但我认为这不是最好的方案。您遇到的问题是iOS7错误,当从视图控制器切换到另一个时,底部布局指南放置不正确。因此,为了解决这个问题,创建一个UITabBarController类,实现UITabBarControllerDelegate,在故事板中设置它,并编写以下内容:

     @implementation TabBarController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        self.delegate = self;
    }
    
    - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
          [tabBarController.view setNeedsLayout];
     }
    
    @end