Rularea unei aplicații universale ca aplicație iPhone scalată?

Am vazut multe intrebari si raspunsuri referitoare la imbinarea unui iPhone si a unei aplicatii iPad intr-o aplicatie universala, dar asta nu vreau sa fac. Ceea ce am de gând să fac este să utilizez în achiziția de aplicații pentru a debloca o interfață iPad și apoi să afișez interfața corectă folosind condiționate. Dacă interfața este achiziționată, aplicația afișează Nibul iPad, iar dacă nu, doar afișează același mod ca și o aplicație pentru iPhone (cu opțiunea de a scala aplicația etc.). Condițiile sunt foarte simple și le-am implementat deja, cu toate acestea problema pe care o întâlnesc este următoarea: Dacă IAP NU este cumpărat, iPad afișează Nibul iPhone, dar nu în mod tipic. Este doar în colț cu nici o opțiune de a scala, mai degrabă decât în ​​centrul cu frontiera neagră pe care le vedeți de obicei. Știe cineva cum pot să o configurez pentru a rezolva această problemă? Sunt un pic cam ciudat ca să fiu cinstit.

0
Nu cred că există o cale de a realiza ceea ce încercați să faceți. Sistemul de operare iPad determină ce tip de aplicație rulează (compatibilitate iPad sau rezoluție iPhone) și prezintă vizualizarea în consecință. Dacă spui sistemului de operare prin configurația aplicației că poate funcționa pe iPad, vei primi întotdeauna acest tip de vizualizare. Doar dacă nu faceți vizualizarea manuală pe cont propriu.
adăugat autor Dan F, sursa

2 răspunsuri

Fișierul Info.plist dintr-o aplicație iOS conține o cheie, UIDeviceFamily , care afișează dispozitivele compatibile cu aplicația. Dacă valoarea cheii este 1 sau o matrice care conține 1, aplicația suportă în mod nativ telefoanele iPhone și iPod Touch. Dacă valoarea este 2 sau o matrice care conține 2, aplicația suportă în mod nativ iPad-urile.

Dacă UIDeviceFamily spune că aplicația suportă iPad-urile, atunci va rula aplicația în modul iPad nativ, nu în modul de împachetare a iPhone-ului.

Fișierul Info.plist face parte din pachetul de aplicații și nu puteți modifica fișierele din pachetul de aplicații.

Deci, nu există nici o modalitate de a activa sau a dezactiva suportul sistemului nativ-iPad în timpul rulării. Va trebui să mutați vizualizarea de nivel superior a aplicației într-o vizualizare înfășurată care centrează și își scaltează copilul și să utilizeze această vizualizare ca și subdiviziune UIWindow .

UIDeviceFamily în Referința cheie a listei de informații a informațiilor

0
adăugat
Multumesc pentru raspuns! Acum că știu că nu este posibil, va trebui să pregătesc ceva pentru a rezolva problema.
adăugat autor Radrider33, sursa

Acest lucru nu este posibil, din păcate. IPad-ul va ști că aplicația este pregătită pentru iPad și va spune să desenați ecranul la dimensiune completă. Chiar dacă ați arătat fișierul iPhone xib pe iPad, acestea ar fi încă scalate pentru a se potrivi întregului ecran folosind paralelele UIViewAutoresizingMask pe care le-ați setat pentru ele.

Un gând ar fi acela de a forța dimensiunea UIWindow să fie de dimensiuni iPhone (nu uitați să contabile pentru retină) și centrată, dar nu sunt 100% sigură cum/dacă acest lucru ar funcționa. Este posibil să fie necesar să modificați fiecare cadru UIView . Nu sunt sigur.

0
adăugat
iOS dezvoltatori, România — Moldova
iOS dezvoltatori, România — Moldova
21 participanți

Parteneri: ciupacabra.com, @php_ro, @js_ro, @node_ro, @seo_ro Android: @ro_android