在iOS 7上有像UITableView
s,UINavigationBar
s这样的元素具有不同的风格.
这种风格在运行时确定,因为这几类实现上UIKit
,并UIKit
与您在运行时动态,而不是在编译时静态链接的应用.
因此,人们可能会认为在iOS 7的任何应用程序的运行将有那些元素,看起来他们希望在iOS 7的方式.然而,他们继续他们曾经有过在iOS 6,直到你跟iOS 7 SDK编译相同的风格.除了其中一些(如UIAlertView
或UIMenuController
)
我对此的唯一解释是他们做了类似这样的事情:
#define SDKApplicationWasLinkedAgainst ...
if (SDKApplicationWasLinkedAgainst < 7.0)
...
else
...
Run Code Online (Sandbox Code Playgroud)
这显然非常麻烦,因为他们需要继续维护很多旧代码.所以我很好奇,这真的是引擎盖下的事情吗?我错过了什么?
如果没有过多地进入NDA的领域,我只想表明是的,他们根据以下调用的结果来条件化外观和行为:
_UIApplicationUsesLegacyUI()
Run Code Online (Sandbox Code Playgroud)
反过来,这个函数调用GSApplicationUsesLegacyUI()
,我假设它返回一个基于链接的UIKit版本的结果.
这意味着是的,他们将条件化UIKit的部分遗留下来.不确定这是件好事,但这就是他们决定做的事情.
归档时间: |
|
查看次数: |
1946 次 |
最近记录: |