3

我们正在着手对我们的应用程序进行重大重写,以支持 iOS 6 和 iOS 7 的用户界面。我们应用程序的初始屏幕具有一个模态视图控制器,UINavigationBar其中显示并允许用户使用 Google (OAuth) 登录。我正在使用 Xcode 5 创建两个版本(使用“文件检查器”选项卡),并且出于可维护性的原因,我使用 xibs 来支持 Storyboard - 版本 1 使用了故事板,随着我们的应用程序的增长,一段时间后很难导航在规模和范围。

在 Xcode 5 中:

iOS 6: iOS 6 界面生成器 xib

IOS 7: iOS 7 界面生成器 xib

而且,当我运行应用程序时,iOS 6 版本显示正确(因为状态栏仍然不同,并且时钟和导航栏之间的间距正确):

iOS 6 运行

但是请注意,在 iOS 7 版本中,因为不再有单独的“状态栏”,所以我UINavigatonBar的标题文本太接近时钟了:

iOS 7 运行

到目前为止,每个人都如何调和这一点?我注意到 Facebook 和 Twitter 等应用程序已经升级并使用“扩展”(不确定这是否是正确的术语)导航栏来弥补视图和状态栏之间缺乏区别:

Twitter升级导航栏

他们是如何做到这一点的?我在 Apple 的 iOS 7 UI 转换指南中看不到任何具体解决此问题的内容,因此我们将不胜感激,而且我相信许多其他人也会遇到这个问题,所以希望这对他们也有帮助。谢谢!

4

2 回答 2

0

快速回答:

使用 UINavigationController!这将解决您的问题。如果不能,请使用自动布局!

于 2013-09-20T21:09:30.013 回答
0
UINavigationBar *aNavigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 44.0)];
aNavigationBar.barStyle = UIBarStyleBlackOpaque;
self.flipsideNavigationBar = aNavigationBar;
[aNavigationBar release];

UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(toggleView)];
UINavigationItem *navigationItem = [[UINavigationItem alloc] initWithTitle:@"Taschenlampe"];
navigationItem.rightBarButtonItem = buttonItem;
[flipsideNavigationBar pushNavigationItem:navigationItem animated:NO];
[navigationItem release];
[buttonItem release];


- (IBAction) toggleView {
}
于 2014-07-04T07:54:12.807 回答