UITabBarController 未显示其内容的所有大小(UIViewController)
Posted
技术标签:
【中文标题】UITabBarController 未显示其内容的所有大小(UIViewController)【英文标题】:UITabBarController not showing all the size of its contents (UIViewController) 【发布时间】:2014-02-12 08:05:03 【问题描述】:我的问题是我无法摆脱UITabBarController
底部的橙色背景,有人知道如何摆脱它吗?
详情:
我有这个UITabBarController
,当我向它添加UIViewController
时,UIViewController
仅适用于 Retina 4 英寸屏幕的 ios 7 中的UITabBarController
内的大小。但是,当我在 Retina 4 的 iOS 6 中尝试此操作时,UITabBarController
的背景以橙色显示在窗口底部。
我已尝试通过以下方式解决此问题:
1) 重新创建
UITabBarController
并手动设置 contentsizeForViewInPopOver2) NSLog
UIViewController
的框架以确保它们是320x568,960 and 1134
但它们都显示相同的橙色(我将UITabBarController
的背景设置为橙色以验证)3) 放大了mapview和mapview的父视图但没有结果。
注意:图片底部的灰色部分是所有的tabbaritems,但没有显示出来。
我看不到任何变化,也无法弄清楚。有人可以帮帮我吗?
提前致谢!
【问题讨论】:
【参考方案1】:为您的视图控制器的主视图设置 4 个地图视图的自动布局约束,每侧(顶部、右侧、底部、左侧)一个,所有值都为零。
【讨论】:
感谢您的回答,但我没有在情节提要上进行开发,因为随着程序变得越来越大,它变得越来越复杂。是否有与编程等效的解决方案?谢谢! 您还可以使用constraintsWithVisualFormat:options:metrics:views:
的NSLayoutConstraint
方法以编程方式创建布局约束。但是,在您的情况下,手动更改地图视图的框架可能更简单,例如从控制器的 viewDidLayoutSubviews
方法中添加以下行:self.myMapView.frame = self.view.bounds;
【参考方案2】:
经过数小时的研究,我找到了原因。
我在显示的视图控制器上有一个名为 -(void)showTabBar 的方法,该方法将框架/边界设置为特定框架,该框架特定于 iOS 7 在 Retina 4 显示中!
现在一切都很好,但感谢 @MrTJ 关于 viewDidLayoutSubviews
的提示【讨论】:
以上是关于UITabBarController 未显示其内容的所有大小(UIViewController)的主要内容,如果未能解决你的问题,请参考以下文章
UITabBarController 仅显示其 UITabBar 的一半(屏幕外)
在 UITabBarController 内未调用 cellForRowAtIndexPath
UISplitViewController 内的 iOS 13 UITabBarController 未正确折叠