iOS 7 : Views change sizes when using TabBar and Autolayout

标签 ios tabbar navigationbar

我的问题可以概括为:

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

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

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

最佳答案

好的,我在您的问题上投入了将近一个小时,我终于想出了一个解决方案,但我认为这不是最好的解决方案。您遇到的问题是 iOS7 错误,当从 View Controller 切换到另一个时,底部布局指南放置不当。所以为了解决这个问题,创建一个 UITabBarController 类,实现 UITabBarControllerDelegate,在 Storyboard中设置它并编写以下内容:

 @implementation TabBarController

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

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

@end

关于iOS 7 : Views change sizes when using TabBar and Autolayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22812211/

相关文章:

iOS更新推送内容扩展

iphone - 应用程序在发送和接收特殊字符时崩溃

javascript - Dojo Mobile : Bug in tabbar? 滚动时图像损坏

html - <li> 成员在鼠标悬停在另一个 <li> 成员上时移动

ios - 我应该在 ViewController 中的什么位置放置初始化代码?

ios - 在 ARC 中将自己分配给 __weak 时应用程序崩溃?

iphone - iOS TabBar 图标设计技巧和实现 : How To?

iphone - 如何仅将标签栏添加到反面 View

android - 在 Android 版本 >= 5 上绘制导航栏(和其他应用程序)

html - 在导航菜单中插入 Logo ,我正在使用 bootstrap3