Ci sono elementi come UITableView
s, UINavigationBar
s che hanno uno stile diverso su iOS 7.In che modo iOS 7 implementa gli elementi dell'interfaccia utente in modo che risultino diversi a seconda dell'SDK con cui vengono compilati?
Questo stile è determinato in fase di esecuzione, dal momento che tali classi sono implementati su UIKit
, e UIKit
è collegata con l'applicazione dinamicamente a runtime , non staticamente al momento della compilazione.
Quindi si potrebbe pensare che qualsiasi app venga eseguita su iOS 7 avrebbe quegli elementi come sembrano su iOS 7. Tuttavia, mantengono lo stesso stile usato su iOS 6, fino a quando non si compila con iOS 7 SDK. Fatta eccezione per alcuni di essi (come UIAlertView
o UIMenuController
)
mia unica spiegazione per questo è che fanno qualcosa di un po 'come questo:
#define SDKApplicationWasLinkedAgainst ...
if (SDKApplicationWasLinkedAgainst < 7.0)
...
else
...
Questo è ovviamente molto ingombrante, perché hanno bisogno di mantenere il mantenimento di un sacco di vecchio codice. Quindi sono curioso, è davvero questo che sta succedendo sotto il cofano? Cosa mi manca?
@Unicorn: È vero, tuttavia non sta chiedendo nulla di specifico per iOS 7 che sarà coperto dalla NDA. Questa domanda potrebbe essere applicata a ** qualsiasi ** due versioni di iOS. – lnafziger
Sfortunatamente, a meno che tu non sia un programmatore di Apple, non puoi davvero rispondere alla domanda su come ** Apple ** lo fa. Potresti avere qualche idea su * un modo * che ** tu ** potresti farlo se ripeti la tua domanda. – lnafziger
In realtà si può rispondere a questa domanda anche se non si lavora in Apple, e non sarà un'opinione: un mio college ha scoperto come lo fanno facendo un po 'di smontaggio. –