iOS 7:使用TabBar和Autolayout时,视图会更改大小

时间:2014-04-02 12:55:55

标签: ios tabbar navigationbar

我的问题可以归结为:

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

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

有一个存储库,其中包含在https://bitbucket.org/juliobiason/tabbarmisbehaviour中复制此问题的代码,可以在此处查看正在进行的操作示例:http://imgur.com/lbbml6D

1 个答案:

答案 0 :(得分:2)

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

 @implementation TabBarController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.delegate = self;
}

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
      [tabBarController.view setNeedsLayout];
 }

@end