如何在iOS 7中仍然使用iOS 6的用户界面?

5
从苹果的转换指南中我知道iOS 7中没有圆角矩形按钮,但是当我看到很多在iOS 7上运行的“旧”应用程序仍然采用iOS 6风格时,我感到困惑。
我最近在iOS 6上开发了一个应用程序,一切都很好。但是在iOS 7发布后,我不得不改变很多UI,例如导航栏和工具栏按钮。但是我真的不想采用iOS 7风格,但我的应用程序无法自适应iOS 6。即使我使用iOS 6 SDK,并在iPhone 5上发布我的应用程序,它仍然使用iOS 7样式,看起来很糟糕。
有什么想法和建议吗?谢谢

2
自定义组件很可能是唯一的解决方法。 - Luke
试一下这个方式...IOS & DISPLAY或者这个...Status Bar Issue - user1673099
@user1673099 我认为问题是关于不改变UI设计的,这意味着JimZ询问如何在已安装iOS 7的设备上支持iOS 6 UI。我说得对吗? - Matrosov Oleksandr
@MatrosovAlexander 是的,但现在我几乎已经将所有的UI更改为适用于iOS 7了。 - JimZ
2个回答

10

您可以在您的应用中强制实施iOS 6的用户界面:

[[NSUserDefaults standardUserDefaults] setObject:@(YES) forKey:@"UIUseLegacyUI"]

@LeoNatan 我并不是想使用它,我认为我知道原因,但我还是要问一下。为什么它不能被AppStore接受? - Popeye
UIUseLegacyUI是一个私有密钥,通常不会公开。此外,它会导致UI出现问题(例如,视图控制器仅适用于iOS7,而不是设计为与旧版UI兼容)。苹果为什么要允许这种情况呢? - Léo Natan
@LeoNatan 听起来很公平。我原本以为他们不允许这样做,所以迫使开发者转移到新的UI。因此,它将被拒绝在“2.5使用非公共API的应用程序将被拒绝”下。老实说,我想点赞你的评论,但我不能,所以我已经点赞了你的答案,我也认为把这个包含在你的答案中会很好,因为我不知道这一点,我会随意使用它。 - Popeye
1
@Popeye 我已经在我的答案中添加了一个参考。 - Léo Natan
不确定苹果是否会接受它,根据http://jeffreysambells.com/2014/01/10/legacy-ui-with-xcode-5-and-ios-7-sdk的说法。问题是它在iOS 8上无法工作,因此需要6.1基础SDK才能获得更好的外观。 - colin lamarre

9

是时候改变了。这就是苹果看待其操作系统的方式。旧应用程序已经让人们感到愤怒,因为它们看起来过时了(看看WhatsApp因未能及时发布更新而面临的批评)。你应该跟上时代,花些时间更新你的用户界面。

作为短期解决方案,您仍然可以使用Xcode 4.6上传到AppStore,针对iOS 6 SDK进行编译。但这只是暂时的,您应该尽快更新您的用户界面。

在另一个答案中建议的UIUseLegacyUI路线是与框架玩乐的有趣方式,也许可以进行实验,但由于使用私有API(可能会在将来不被支持),因此在AppStore上不会被接受。


1
@Zaph 那是你的观点。你当然有权利持有它。但是你选择了这个生态系统,它受到苹果公司严格的规则限制。如果你不再喜欢这个生态系统,你有权离开。 - Léo Natan
1
@Zaph 我不认为这是混乱。我认为这是一件仍然非常年轻和非常有活力的事情。在这些测试版中发生的变化比从iOS4->5->6的变化还要多。 - Léo Natan
@LeoNatan 你有证据表明苹果拒绝设置UIUseLegacyUI默认键的应用程序吗? - Nikolai Ruhe
@NikolaiRuhe 您可以尝试并冒险,但我不会冒这个险。 - Léo Natan
这不是问题的答案。他在问如何保留iOS 6 GUI,而你告诉他不要这样做。这是我们的选择,而不是苹果的选择。有很多应用程序不使用任何苹果提供的GUI,那么为什么你认为我们不应该这样做呢?好吧,我会去别处找答案。 - sudo
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接