Bhr*_*esh 32 iphone ios6 ios7 xcode5
我尝试在iOS 7中测试我的应用程序,然后我发现我的视图显示在状态栏上...正如我读到的,在iOS 7中,状态栏被隐藏.那么如何让它兼容在iOS 6和iOS 7中运行?我是否必须为每个屏幕为不同的iOS版本制作不同的.xib文件?
我一直在阅读:如果标准应用程序的两个版本都应该具有类似的布局,请使用"自动布局"创建在两个版本的iOS中都能正常工作的UI.要支持多个版本的iOS,请指定一组约束,Auto Layout可以使用这些约束来调整storyboard或XIB文件中的视图和控件(要了解有关约束的更多信息,请参阅"约束Express视图之间的关系").
如果标准应用的两个版本都应具有相似的布局,并且您没有使用自动布局,请使用偏移.要使用偏移,请首先更新iOS 7的UI.接下来,指定将早期UI中每个元素的原点,高度和宽度定义为iOS 7 UI中元素新位置的偏移量的值.
但是当我在.xib中使用autolayout时,它会显示一个错误,autolayout在iOS 6的先前版本中.
我该如何解决这个问题?
Ner*_*ken 37
iOS 7显然支持某些视图隐藏的状态栏,但不支持其他视图.要为所有视图隐藏它,请执行以下操作:
Hide during application launch
仍然选中,以支持以前的操作系统版本.View controller-based status bar appearance
并设置为NO
.NIK*_*HIL 24
您可能需要在每个视图控制器上添加以下代码.
- (void)viewDidLoad
{
[super viewDidLoad];
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)])
{
[self prefersStatusBarHidden];
[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
}
else
{
// iOS 6
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
}
}
// Add this method
- (BOOL)prefersStatusBarHidden {
return YES;
}
Run Code Online (Sandbox Code Playgroud)
我有同样的问题.现在我做了两个黑客,并决定我将去哪个:
UIStatusBarHidden
和完全隐藏状态栏UIViewControllerBasedStatusBarAppearance
.如何为状态栏区域创建Autolayout帐户?
好吧,我明白了.
在您的子视图(BRSMyListSubViewController
在我的情况下)中viewDidLoad
,您需要设置这两个中的一个
self.edgesForExtendedLayout = UIRectEdgeNone;
self.automaticallyAdjustsScrollViewInsets = NO;
Run Code Online (Sandbox Code Playgroud)
要么
self.edgesForExtendedLayout = UIRectEdgeNone;
self.extendedLayoutIncludesOpaqueBars = YES;
Run Code Online (Sandbox Code Playgroud)
有趣的是,在根视图控制器,这些值被设置为默认值UIRectEdgeAll
,NO
并且YES
分别,但其tableView
不是下导航栏和页脚.
我不知道为什么它如此不合逻辑.
同样奇怪的是edgesForExtendedLayout
,必须与其他两个属性中的一个混合,即使它明确地对行为负责.
如果您想在iOS 7下使用Xcode 5 显示状态栏,只需重新排列按钮和其他子视图,以在状态栏周围留出足够的空间.但是,等一下!我也喜欢支持iOS 6.我怎么做?
我找到了Apple的文档,并在文档中找到了"支持两个版本的标准应用程序"标题.
如果您正在编辑XIB文件,请选择它并单击助理编辑器.你可以在那里找到"手动,自动......"菜单.然后选择"预览".
然后你会找到一个并排的视图布局.然后你会注意到右窗格右侧底部有一个弹出按钮(视图); 它说"iOS 7及更高版本".您可以选择"iOS 6.1及更早版本".WOA!现在,您可以在不影响iOS 7布局的情况下对iOS 6.1进行调整.
如果您正在处理故事板,它基本上是相同的.您选择一个视图控制器对象,然后单击助手编辑器模式,选择"预览",然后选择"iOS7及更高版本"...... Bluh Bluh Bluh.
我不确定,但只有助理编辑才能切换到iOS 7 +/iOS 6-模式.我刚刚发现这个,所以请指出,如果有任何误解或其他伎俩.
归档时间: |
|
查看次数: |
77111 次 |
最近记录: |